vim, nvim 블럭 붙여넣기 반복

 개요 (말로 설명하려니 어렵네요. 나중에 gif 넣자) block 으로 paste 를 하는 경우 block 이 replace copy 됩니다. 그래서 다음에 또 block paste 하는 경우에는 지워진 문자열이 paste 되죠. visual  일때만 p 명령을 remap 하면 됩니다. vim xnoremap p pgvy ~/.vimrc 에 위 내용 넣으면 됩니다. nvim vim.keymap.set('x', 'p', 'pgvy') ~/.config/nvim/init.lua 에 위 내용 넣으면 됩니다. visual block 일때만 p를 pgvy 로 명령을 바꾼다는 내용입니다. 출처 https://stackoverflow.com/questions/290465/how-to-paste-over-without-overwriting-register https://nolboo.kim/blog/2016/10/27/vim-g-command/

astronvim search 후 이동시 search highlight 꺼지는 문제 해결

 ~/.config/nvim/lua/astronvim/autocmds.lua vim.on_key(function(char)   if vim.fn.mode() == "n" then     local new_hlsearch = vim.tbl_contains({ "<CR>", "n", "N", "*", "#", "?", "/", "h", "j", "k", "l" }, vim.fn.keytrans(char))     if vim.opt.hlsearch:get() ~= new_hlsearch then vim.opt.hlsearch = new_hlsearch end   end end, namespace "auto_hlsearch") hdsearch 를 유지하는 key를 삽입 hlsearch 를 왜 강제로 꺼버리는지 모르겠지만, 암튼 그나마 방법이네요.. 출처 : https://www.reddit.com/r/AstroNvim/comments/108cir5/keep_word_search_highlighting/

우분투 기본 명령 설정 update-alternatives

개요 우분투 20.04를 쓰고 있는데 python2 가 걸리적거립니다. 언제적 python2인데..하... 암튼 python3 를 기본 python 으로 사용할 방법이 있습니다. update-alternatives 이런 유틸이 있습니다. man 페이지를 보니 기본 명령의 심볼릭 링크를 관리해준답니다. Python $ sudo update-alternatives --list python /usr/bin/python2.7 /usr/bin/python3.8 --list 를 쓰면 python으로 등록된 alternative가 두개입니다. $ sudo update-alternatives --config python 대체 항목 python에 대해 (/usr/bin/python 제공) 2개 선택이 있습니다.   선택       경로              우선순� 상태 ------------------------------------------------------------ * 0            /usr/bin/python3.8   2         자동 모드   1            /usr/bin/python2.7   1         수동 모드   2            /usr/bin/python3.8   2         수동 모드 현재 선택[*]을 유지하려면 <엔터>를 누르고, 아니면 선택 번호를 입력하시오: 0 Clang $ sudo update-alternatives --list clang update-alternatives: 오류: clang에 대한 대안이 없습니다 clang 은 등록된게 없나보네요. apt 로 기본 설치해보면  clang 버전이 8이었던걸로 기억합니다. 최신 쓰고 싶습니다. apt 최신이 clang-12 네요. 일단 설치 $ sudo apt install clang-12 이 상태로 clang 은 안되고 clang-12 를 쓸수 있습니다. clang-12 를 기본으로 등록해서 쓰도록 해보죠. $ sudo update-al

NeoVim Astronvim 설치 및 사용법 총정리

이미지
서론 개삽질 끝에 총정리할수 있게 되었습니다.   개빡...nvim 쓰려다 화가 많아짐.  vim 슈퍼유저라는 자만심에 덤볐다가 개까이고 겨우 쓸만큼 익히는데 일주일 걸렸습니다. 얼마 후 까먹을 나 자신을 위한 정리입니다. 레퍼런스 평소라면 레퍼런스를 마지막에 놓지만, 이 게시물은 레퍼런스가 매우 중요합니다. 아오 진짜 Neovim Install Astronvim Getting Started Astronvim key mapping 사전준비 아무런 개발 환경 설정을 하지 않은 깨끗한 터미널을 준비해주세요! 이게 뭔...  amd64 linux pc 에 aarch64 크로스컴파일 설정해놓은 터미널에서 설치했더니 aarch64 라이브러리들이 설치되서 개판나더군요. 대환장 MacOS iTERM2 설치하세요. 기본 Terminal 은 truecolor 를 지원 안해서 이딴 화면 보여줍니다.  캬악! 이 시대에 트루컬러 미지원이 말이 되냐! 이걸로 또 얼마나 삽질을 한건지! brew install iterm2 Nerd font 폰트 설치 안하면 기껏 nvim 설치해봐야 아이콘 다 깨져보입니다. neovim 용 D2Coding nerd 폰트  참조하여 설치 및 terminal 기본 폰트 설정하세요. macos 기준 왼쪽 상단 iterm2 -> settings Neovim 모던하게 vim 개조해서 Pull Request 했더니 vim 개발자가 받아주질 않아서 빡쳐서 NeoVim 으로 만들었다는데, 진실은 모르겠습니다. 아무튼 이름부터 마음에 듭니다. NeoVim 설치 2024년 1월 기준 0.9 버전 이상 설치하세요. 저처럼 삽질하지 말고 Neovim Install  링크 참조 Ubuntu apt 는 0.5 버전인가 그렇고 appimage 다운받아서 PATH 에 속한 곳에 적당히 넣어두세요.  전 /usr/local/bin 에 넣어뒀습니다. 나중에 업데이트 할 일 있으면 수동으로 하면 됩니다. curl -LO https://github.com/neovim/neovim/

neovim 용 D2Coding nerd 폰트

이미지
  neovim 준비물 중에 nerd font 가 있어 검색을 통해 여러가지 확인해봤는데, 검색으로 블로그 등지에서 다운 받은 d2coding 들은 대부분 깨져보입니다. 위 astro nvim 인트로의 find word, bookmarks 아이콘들이 깨져보여요. 골머리를 앓다가 등잔밑에서 찾았습니다 후.. https://github.com/ryanoasis/nerd-fonts 그냥 너드폰트 깃헙에 있네요. 기여자에게 감사를 전합니다!

ctags 팁 : ctagsignore

서론 ctags는 아직 구닥다리 개발자에게 소중한 툴입니다. 다만 ignore 기능이 있는지 모르고 사용하다보니 꽤 불편했었는데, 날잡아서 찾아봤습니다. RTFM (Read the fxxking manual) 진작 좀 man 페이지 볼껄.. 결론은 아래에 있습니다. exclude 옵션        --exclude=[pattern]             Add  pattern  to  a list of excluded files and directories. This option may be specified as many times as desired. For each file name considered by ctags, each pattern specified using this option will be compared against both the complete path (e.g. some/path/base.ext) and the base name (e.g. base.ext) of the file, thus allowing patterns which match a             given file name irrespective of its path, or match only a specific path. If appropriate support is available from the runtime library of your C compiler, then pattern may contain the usual shell wildcards (not regular expressions) common on Unix (be sure to quote the option parameter to protect the wildcards from being expanded by the shell before be‐             ing passed to ctags; also be aware that wildcards can match the slash

docker 모든 container를 재시작

 sudo docker ps -a --format '{{.ID}}' | xargs -i sudo docker restart {} 리부팅하고 나서 모든 도커를 재시작하는 스트립트 하나 만들었습니다. 방법이 있을 것 같긴 한데 거기까지 알아보긴 귀찮아서 평소에 쓰던 스크립트를 사용해서 만들었네요.

이 블로그의 인기 게시물

WSL2 Ubuntu 20.04 및 네트워크 설정

git pull 을 했더니 branch가 갈라지는 경우

리눅스 멀티코어를 사용하는 tar 압축/해제