Post about "vim"

터미널의 sudo vi를 vim윈도우로 띄우기

제목이 썩 맘에 들지는 않지만 적당한 표현을 못찾았다.

일반 사용자 계정에서는 vi나 vim을 실행하면 macvim이 실행되도록 했다.

그런데 sudo vi나 sudo vim 을 실행하면 맥 OS X에 기본으로 설치된 vim7.3이 실행된다.

패스 때문이다. sudo로 vi를 실행할 때에도 macvim이 실행되도록 해보자

  1. macvim이 /usr/local/bin/mvim에 설치되어 있다고 가정하자.
  2. 맥 OS X에 내장된 vim의 이름을 vim7.3으로 변경하자
  3. sudo vim 했을 때 macvim이 실행되도록 심볼링 링크를 걸어준다.
  4. sudo vi 했을 때에도 macvim이 실행되도록 방금 만든 vim에 심볼릭 링크를 걸어준다.

터미널에서 sudo vi filename 을 입력하면 macvim이 실행되기는 하지만, macvim 윈도우에서 뜨는 게 아니라, 터미널 내에 뜬다.

sudo vi -g 로 실행하면 macvim윈도우에서 뜬다.

또는 명령모드를 이용해 :gui 를 실행하면, 현재 열고 있는 문서가 새로 열린 macvim 윈도우에 보인다.

 

Python 들여쓰기를 탭에서 스페이스로 바꾸기

파이썬으로 엑셀 라이브러리를 만들었다. 기존 파일을 수정만 하는 기능만 제공해서 코드 수가 170여 줄 밖에 안된다.

그런데 여기에 새 시트를 추가하는 기능을 추가해야 한다.

문제는 코딩 스타일.

기존에 들여쓰기를 탭으로 설정해 두었는데, 두어 달 전부터 스페이스 4칸으로 바꾸었다. 그리고 Vim과 PyCharm의 설정이나 플러그인도 모두 스페이스*4로 바꾸었다.

그래서 들여쓰기 규칙이 일치하지 않아 문제가 발생한다.

기존에 탭으로 설정된 들여쓰기를 스페이스*4로 바꾸어야 한다.

stackoverflow에는 천재, 영재, 똑똑한 사람들, 현명한 사람들, 잉여력이 쩌는 사람들이 많다.

http://stackoverflow.com/questions/234564/tab-key-4-spaces-and-auto-indent-after-curly-braces-in-vim

저기 답변 중 다음과 같은 방법으로 쉽게 해결했다.

 

 

vim의 pymode에서 들여쓰기 경고(pep8) 무시하기

vim의 파이썬 플러그인 끝판왕인 python-mode.

다 좋은데 이 플러그인을 쓰면 들여쓰기가 탭이 아니라 스페이스 4개로 된다. 어떻게 바꿔야 할 지 몰라서 이 플러그인에서 제공하는 들여쓰기 기능을 비활성화했다.

.vimrc에 다음과 같이 써주었다.

그랬더니…저장할 때마다 들여쓰기 경고가 발생한다. 이 경고를 꺼야겠다.

다시 .vimrc에 아래를 추가했다.

이제 경고가 발생하지 않는다.  오류나 경고 번호를 위와 같이 따옴표로 감싸주어야 한다!

python 관련 vim 플러그인

관련 플러그인

  1. AutoComplPop: Automatically opens popup menu for completions
  2. python.vim : A set of menus/shortcuts to work with Python files
  3. pyflakes.vim : PyFlakes on-the-fly Python code checking
  4. Pydiction : Tab-complete your Python code

이 중에 python.vim(실제 파일명은 python_fn.vim) 단축키만 여기에 올려둔다. 이 플러그인은 매뉴얼이 따로 없고, 플러그인 파일 내에만 간단하게 요약되어 있다.

Shortcuts:

]t — Jump to beginning of block
]e — Jump to end of block
]v — Select (Visual Line Mode) block
]< — Shift block to left
]> — Shift block to right
]# — Comment selection
]u — Uncomment selection
]c — Select current/previous class
]d — Select current/previous function
]<up> — Jump to previous line with the same/lower indentation
]<down> — Jump to next line with the same/lower indentation

 

Python 플러그인 끝판왕 python-mode