목록vim (24)
살아가는 이야기

msys 터미널(mintty)의 vim에서 마우스 선택을 Windows 클립보드로 복사하는 방법은 매우 복잡하다. vim 버전에 따라 지원하는 방법이 다르고 이는 다시 .vimrc 설정에 따라 달라질 수 있다. 게다가 vim에서 복사한 내용이 Windows 클립보드에 전달되지 않기도 한다. 가장 간단한 방법은 mintty의 기능을 이용하는 방법이다. 사실, msys 터미널인 mintty에서는 Ctrl+Ins 키 조합으로 복사하기를 할 수 있고 Shift+Ins 키 조합으로 붙여넣기를 할 수 있다. 그러나 문제는 vim에서 이 키 조합이 동작하지 않는다는 것이 문제이다. 이때, 사용할 수 있는 방법이 바로 Shift+마우스끌기(mouse drag) 조합이다. vim에서 그냥 마우스 끌기로 선택을 하면 다음..

vim을 꽤 오래 사용했다고 생각하고 있었지만, 얼마 전부터 구문 강조가 제대로 동작하지 않아 애를 먹고 있었다. 문제는 항상 동작하지 않는 것은 아니고 어떤 것은 동작하고 어떤 것은 동작하지 않는 상태였다. 그러니까 colorscheme을 바꾸어도 아무 효과가 없는 경우가 빈번했다. 사실 난 default 색상 체계로 만족하고 있었는데, 거슬리는 것은 C/C++의 전처리기 지시자였다. 다음 화면을 보자. 위 화면을 보면 #include가 아주 어둡게 나와 있는 것을 볼 수 있다. colorshceme을 새로 설치도 해 보고 바꾸어 보기도 했지만, 전처리기 지시자가 마음에 들면 주석 스타일이 마음에 들지 않거나 두 개가 다 마음에 들면 키워드 스타일이 마음에 들지 않는 등 고심하고 있었다. '아무리 색상..

지난 글에서 컴파일러 개발을 위해 MinGW를 설치하는 방법을 알아보았다. 설치 과정에서도 엿볼 수 있었지만 MinGW에도 이전 버전의 msys가 포함되어 있다. 그러나 msys를 사용하려면 아무래도 패키지 관리자 pacman이 지원되는 최신 msys2를 설치하는 것이 더 좋다. 이 글에서는 msys2를 설치하는 방법을 살펴본다. 1. msys2 다운로드 다음 페이지에서 msys2 설치 파일을 다운로드한다. https://www.msys2.org/ 이 글을 쓰는 2021년 9월 현재, 설치 파일 이름은 msys2-x86_64-20210725.exe이다. 2. 설치 파일 실행 다운로드한 설치 파일을 더블클릭하여 프로그램 설치를 시작한다. Next 버튼을 누르면 설치 위치를 선택하라는 창이 나타나는데, 편한..
msys2에서 vim을 설치하고 autoindent(ai), smartindent(si)를 설정했더니 자동 들여쓰기 뒤로 백스페이스가 안 되었다. 구글링으로 얻은 해법은 바로 다음 설정이다. set backspace=indent 행 사이를 넘어 백스페이스가 동작하도록 하려면 다음과 같이 설정한다. set backspace=indent,eol,start 뜻이 있는 곳에 길이 있다.

다른 편집기와 달리 vim에는 비주얼 모드(visual mode)라는 특별한 모드가 있는데, 이를 이용하면 직사각형 블록을 선택할 수 있다. 비주얼 모드로 들어가는 방법은 v, V, Ctrl-Q, 세 종류가 있는데, 사각형 블록을 선택하려면 이 중에서 Ctrl-Q를 사용해야 한다(본래 Ctrl-V였으나 이 키가 복붙키로 너무 자주 사용됨에 따라 바뀌었음). 구체적인 예로, 그림 1과 같은 C 코드에서 x, y의 타입을 int에서 double로 바꾸고 싶다고 하자. 먼저, 그림 1처럼 선택할 사각형의 좌측 상단으로 커서를 이동한다(화살표키 사용 가능). 그리고 Ctrl-Q 키를 눌러 비주얼 모드로 진입하면 그림 2와 같이 선택 블록이 나타난다. 그리고 j(아래), l(우측) 키로 커서를 이동시키면 그림 3..
vim을 사용하다가 혹시 다음과 같은 오류가 발생한다면 E513: 쓰기 에러, 변환 실패 (무시하려면 'fenc'를 비우면 됨) E513: write error conversion failed (make 'fenc' empty to override) 다음과 같이 해 보시기 바랍니다. :set fenc= = 기호를 생략하시면 안 됩니다. 다음과 같이 하셔도 같은 기능입니다. :set fileencoding=
vim의 장점은 설치 후에 자신의 입맛에 맞게 편집기 설정을 바꿀 수 있다는 점이다. 설정을 바꾸려면 vimrc 파일을 바꾸면 된다.하지만 시스템에서 정의하고 있는 기본 vimrc 파일이 여러 개 있고 자신의 홈 폴더에 정의하고 있는 vimrc 파일도 있기 때문에, 어떤 파일을 바꾸어야 하는지 난감하다. vim이 참고하고 있는 vimrc 파일 위치를 파악하려면 vim 내에서 :version을 입력하면 중간쯤에 아래와 같은 내용을 확인할 수 있다. 시스템 vimrc 파일: "$VIM\vimrc" 사용자 vimrc 파일: "$HOME\_vimrc" 사용자 두 번째 vimrc 파일: "$HOME\vimfiles\vimrc" 사용자 세 번째 vimrc 파일: "$VIM\_vimrc" 사용자 exrc 파일: "$..
Windows에 gvim을 설치하고 나면 항상 Fixedsys로 글꼴이 정해져 불편할 경우가 많다. vimrc에 글꼴을 정하도록 할 수 있는데, 다음 내용을 $VIMRUNTIME 폴더(대개 C:\Program Files\Vim\Vim?? 폴더임. 여기서 ??은 버전)의 vim_example.vim에 추가해 주면 된다.if has("gui_running") if has("gui_gtk2") set guifont=Inconsolata\ 11 elseif has("gui_macvim") set guifont=Menlo\ Regular:h12 elseif has("gui_win32") set guifont=D2Coding:h10:cANSI endif endif이렇게 정해 두면 GUI로 gvim을 실행하는 경우에..