vim 일기
2015년 11월: splitjoin.vim
- 준건님이 splitjoin.vim [1] [2] 을 알려주셔서 사용해봤다.
- 사용 예
- e.g. ruby 에서
{ ~ }
블락을do ~ end
블락으로 변경할 때. - e.g. html 에서 많은 속성을 가진 태그를 들여쓰기 할 때.
- e.g. ruby 에서
- 처음 이 플러그인을 써보고 “우왕!!!” 했지만
- 시간이 지나고 당장 급하면 이 플러그인이 있다는 사실은 망각하고 macro 를 쓰게 된다.
- 사용 예
2015년 12월: neovim
- neovim 은 설정파일을 XDG directory specification [3] 를 따르도록 변경되었다. [4]
- 즉,
~/.nvimrc
대신~/.config/nvim/init.vim
을 사용. - XDG directory specification 라는 것도 찾아보니.
- application 의 user 별 설정파일을 홈의 닷파일로 저장하면서 홈 디렉터리가 지저분해져서
- 디렉터리 구조의 표준 사양을 만든 것.
- 즉,
2016년 1월: gv.vim, fixeol, jsonencode
- 준건님이 만든 zoom 함수 [5] 를 모방해서 많이 쓰고 있다.
- gv.vim [6] 을 설치함. (fugitive 기반 git browser)
- 기존에 gitv [7] 를 사용하고 있었는데,
- gv.vim 이 훨씬 가볍고 단순해서 나한테 맞게 수정하기 좋다.
- 그래서 gitv 는 지워버리고 gv.vim 만 쓰는 중.
- eol 문제가 vim 의 옵션으로 추가되었다! (fixeol)
- 문제:
- IntelliJ IDEA 는 default 로 EOL 을 붙이지 않고
- vim 은 default 로 EOL 을 붙임.
- 그래서 intellij 로 작성한 파일을 vim 에서 write 할 때 마다 변경사항이 발생함.
- 옛날 해결책:
- 현재 파일이 eol 이면 set eol, 현재 파일이 noeol 이면 set noeol 로 저장하도록 꼼수 스크립트를 만들어 쓰고 있었음.
- 새로운 해결책:
- vim v7.4.785 에서 fixeol 옵션이 추가 되었고 [8]
- default 가 on 이기 때문에
set nofixeol
옵션을 넣으면 eol 을 vim 이 강제로 고치지 않음.
- 문제:
- vim script 의 builtin function 으로
jsonencode()
와jsondecode()
가 추가됨. [9]
2016년 2월: vim-easy-align, vim8
- 오랫동안 tabular [14] 를 써왔고, 여기에 익숙해져 있어서 변경할 생각을 못했는데.
- 이번에 마음먹고 준건님의 vim-easy-align [15] 을 사용하도록 변경했다.
- tabular 에 비해 장점은.
- 옵션이 많고. (아직 다 모르겠지만)
- align 할때 ignore 할 수 있는 옵션이 정말 좋다!!
- pom.xml 파일을 더 예쁘게 보여준다길래 vim-maven-syntax 를 설치했다. [16]
- 비동기적으로 job 을 실행시킬 수 있는 기능이 vim 공식 feature 로 들어감. [17]
- neovim 과의 관계 때문에 reddit 의 스레드는 폭발함. [18]
- 내 생각엔 이제 Neovim 은 망할 것 같다.
- neovim 과의 관계 때문에 reddit 의 스레드는 폭발함. [18]
아무튼 이제 아래와 같은 코드가 가능해졌다.
function! Handler(ch, msg) echom a:msg endfunction
let job = job_start('ls -alh ~/', { 'callback': 'Handler' })
- python 을 위한 braceless.vim [19] 을 설치함.
- python 같은 brace 가 없는 indent 기반 언어를 위한 플러그인.
- custom text object, fold, indent guide 를 제공한다.
- 처음에는 설치할만큼 매력적이지 않다고 생각했다.
- 하지만 설치하고 써보니 생각보다 편한듯.
- 특히 custom text object 는 많이 쓸 것 같은데, 왠지 모르게 첫번째 로딩이 느려진다.