How To: Compile every language from Vim


Vim에서 Compile하는 단축키 설명




탭 대신 공백 사용하기

탭을 눌렀을 때 탭 대신 몇개의 공백 문자를 넣는 :set expandtab 옵션을 제공한다. (줄여서 et)

예를 들어, 설정 파일에 set et ts=4 로 설정되어 있다면 사용자가 탭을 누르는 순간 네 칸의 공백 문자가 입력된다.


Tip: 진짜 탭 문자를 입력하고 싶다면..

expandtab 옵션이 설정된 상태에서 진짜 탭 문자를 입력하려면, 특수 문자를 입력할 때 썼던 <CTRL-V> <CTRL-I> 로 입력하면 된다.


기존 탭 문자 <----> 공백 변환

et 옵션은 새로 입력하는 탭만 공백으로 바꿀 뿐 기존의 탭 문자들은 건드리지 않는다. 따라서 기존의 탭 문자들도 모두 공백으로 변환하거나 반대로 공백을 탭으로 변환하려면 :retab 명령을 사용해야 한다. (줄여서 ret)

retab 명령은 expandtab 옵션이 on 상태이면 탭을 공백으로 변환하고, off 상태면 공백을 탭으로 변환한다.

:[range]ret [new_ts]

여기서 new_ts 는 연속된 공백 문자의 길이이다. 만약 :ret 4 라고 명령했다면 변환 대상은 공백 문자 네칸이 된다. new_ts 옵션을 생략하면 tabstop 설정을 따른다.

예를 들어, expandtab 옵션을 on 상태로 만들고 retab을 실행하면 기존에 입력된 탭을 공백 네 칸으로 변환한다.

:set et

:ret 4

또한 expandtab 옵션을 off 상태로 만들고 retab 을 실행하면, 공백 여덞 칸을 탭 하나로 변환한다.

:set noet

:ret 8


단, ret 명령을 사용하여 공백을 탭으로 변환할 때, 공백 문자로만 구성된 부분은 사용자가 의도적으로 입력했다고 판단하여 변환하지 않는다.

그러나 이를 무시하고 모든 공백을 탭으로 변환하고 싶다면 강제 명령어인 느낌표(!) 를 붙여 다음처럼 명령해야 한다

:[range]ret! [new_ts]


C로 작성된 소스코드를 열면, 자동으로 탭을 공백으로 변환하는 방법

set et

au FileType     c        retab




단어 완성

프로그래밍을 하다보면 변수나 함수 혹은 메소드 이름에서 오타가 발생하기도 한다. 이를 위해, 단어 완성(keyword completion) 기능이 도입되었다.


단어 자동 완성

단어 자동 완성은 본문에 이미 등장한 단어나 예약된 단어의 앞 글자 몇 개만 입력한 후 <CTRL-N> 을 누르면 나머지를 완성시켜 주는 기능이다.

더하기 낱말 모드

aa까지만 입력한 뒤 <CTRL-N> 을 누르면, aaaaa까지만 완성되고 @nadf.vom 은 완성되지 않는다. 이는 @ 이 단어에 포함되지 않는 문자 부호라서 발생하는 문제이다.

이런 경우를 대비하여 더하기 낱말 모드가 존재한다. 일단 aaaaa까지 완성된 상태에서 <CTRL-X><CTRL-N> 을 누르면 aaaaa@sdf.vim 이 완성된다.


단어 완성 기능의 확장 모드(입력 모드에서 사용)

<CTRL-X> <CTRL-N>                                더하기 낱말 모드로 작동하여 추가 검색을 함.

<CTRL-X> <CTRL-K> <CTRL-N>            사전 검색 모드로 작동한다.




HTML 변환하기

소스코드를 웹에 게재했을 때 들여쓰기나 줄바꿈 모양이 망가지는 경우가 있다. 웹에 프로그래밍 소스코드를 게시하려면 많은 부분을 수정해야 하는데, 간단한 코드라면 직접 수정해도 되겠지만 코드가 길어지면 이 작업도 만만치 않다. 그래서 vim에서는 현재 화면에 보이는 상태를 HTML로 변환하는 기능이 탑재되어 있다.

:TOhtml 을 명령하면 된다.

생성된 HTML에서 <head>나 <body> 등 html 문서에 필요한 모든 뼈대가 포함되어 있으므로, 코드만 다른 곳에 붙이고 싶다면 <body> 태그부터 </body> 태그 앞까지만 복사하면 된다.


'Vim > Tutorial' 카테고리의 다른 글

C++ code completion  (0) 2016.02.27
vim Regular Expression  (0) 2013.05.12
반복적인 작업 녹화하기  (0) 2013.02.06
자동화  (0) 2013.02.05
오퍼레이션 펭딩 모드 / 약어 매크로 / 레지스터 활용  (0) 2013.02.05
Posted by scii
:

반복적인 작업을 녹화해서 작업하는 동영상이다. 이것은 ID랑 똑같은 것을 찾아서 뒷 부분에 이메일 주소를 넣어주는 영상이다.

지금은 몇 줄 안되서 그러지만, 이것이 수십, 수백, 수천줄이면 정말 상당히 유용할 것이다.


녹화는 사용자의 작업을 기억해두었다가 다시 작동시키는 일종의 매크로 기능이다.


녹화 시작

qa를 누르면 상태바에 recording 이라는 메시지가 표시되면서 녹화가 시작된다. 

q 는 녹화를 시작하거나 종료할 때 쓰는 명령이다. 

a 는 녹화할 매크로의 이름이다. 매크로 이름으로는 영문 소문자를 사용해야 한다. 녹화된 내용은 녹화가 끝난 후 동일한 이름의 레지스터에서 확인할 수 있다.


ID 복사

고객을 식별하는 기준이 되는 고객 번호를 복사해야 하므로, ^ 눌러 커서의 행 맨 앞부분으로 이동시킨 후 yiw 명령을 실행하여 단어를 복사한다.


고객 번호로 검색

복사했던 번호를 /<CTRL-R>" 을 명령하여 찾는다. 그 후 2w를 눌러 이메일 앞까지 커서를 옮긴다. 그 다음 y$를 하여 복사한다.

CTRL-R" 이것은 ""p 와 같고, 위의 영상으로선 "ap 와 같다. 


clientlist.txt에 주소 붙여넣고 녹화 끝내기

A를 눌러 행의 맨 뒤로 커서를 이동, 입력 모드로 전환하여  쉼표를 입력하고 ESC를 눌러 입력 모드를 종료한다. 그 다음 p를 눌러 메일 주소를 붙여 넣는다.


녹화된 내용 재생

@a 라고 명령한다.

@ 은 녹화를 재생하는 명령이다.

a 는 녹화했던 레지스터의 이름이다.

그리고 @@ 는 바로 이전에 실행했던 녹화 내용을 다시 실행하는 명령이다.


녹화와 재생 명령어

q<매크로 이름>                녹화를 시작한다. 매크로 이름은 {a-zA-Z} 중 선택해야 한다.

@<매크로 이름>               매크로를 실행한다. 매크로 이름은 {a-z} 중 선택해야 한다.

@@                                    바로 이전에 실행된 매크로를 재실행한다.


대문자 이름은 바로 이 레지스터를 수정할 때 사용한다. 

즉, qA 로 녹화를 시작하면, a 레지스터에 녹화된 내용에 새로 녹화하는 내용이 추가된다. 만약 a 레지스터에 녹화한 적이 없으면서 qA 로 녹화를 시작한다면 qa 명령과 동일한 기능을 수행한다.


녹화 내용 확인하기

:reg a 로 내용을 볼 수 있다. 

^W 는 <CTRL-W> 이다.

^M 은 Enter 이다.

^[ 는 ESC 이다.


범위를 지정하여 매크로 수행하기

각 행마다 수동으로 @a를 누르는 과정은 여전히 비효율적이다. 만약 수정할 파일이 수천 행 정도로 길다면 보통 고역이 아닐 것이다. 그래서 문서 전체를 한 번에 처리할 수 있는 방법을 알아야한다.

:%normal! @a

% 는 문서 전체를 의미한다.

normal 은 바로 뒤에 나오는 문자열을 일반 모드의 명령어로 인식하라는 뜻이다. (norm 으로 축약 가능)


ex) %normal! ^^X     이것은 맨 왼쪽으로 가서 숫자를 1씩 감소시키라는 명령이 된다.

숫자를 5씩 증가 시키려면 %normal! ^^A


매크로 수정하기

이메일 주소에 ""로 감싸려고 한다면, 다시 녹화를 진행하는 것보단 수정하는 편이 더 효율적이다.

"ap 명령하면 레지스터 a의 내용이 입력된다. 이제 이것을 가지고 수정하면 된다.

"ay$ 를 명령하여 레지스터 a 의 내용을 업데이트 시킨다.


Tip: 

여기서는 레지스터 전체를 불러오고 내용을 수정한 후, 수정된 내용 전체를 레지스터 a에 다시 입력했다.

하지만 레지스터의 맨 뒤에 내용을 추가하는 것과 같이 간단한 경우에는 대문자로 녹화를 하면 된다. 예를 들어 위와 같은 경우는 qA 로 녹화하면 추가 모드로 녹화가 진행된다.

 

q: 와 q/ 명령

q:명령행 모드의 과거 기록을 보여준다.

q/과거 검색어 목록을 보는 기능이다.

이전에 실행했던 명령어나 검색어의 목록을 개별 창에서 보면서 선택할 수 있는 유용한 기능이다. q:나 q/ 로 보이는 이력 창은 일반 창과 동일하게 작동하므로 :q 로 닫으면 된다.





현재 디렉토리에 있는 모든 파일들의 <stdio.h> 문장을 찾아서 <aaaaa.h> 로 바꾸는 작업.



:n * 는 현재 디렉토리의 모든 파일을 버퍼로 가져온다.

999@b 는 b 레지스터를 999번 재생한다. (현재 디렉토리의 파일이 999개 미만이라고 가정)


그리고 여기서 가장 중요한 것 %s/<stdio.h>/<aaaaa.h>/ge 이 부분이다. 

특히, 이 부분에서 e 이것이다. e 는 에러 발생시 무시하는 명령이다. 이 명령이 없으면 찾는 문자열이 없을 경우 재생이 중단되어버린다.


'Vim > Tutorial' 카테고리의 다른 글

vim Regular Expression  (0) 2013.05.12
프로그래밍할 때 유용한 기능  (0) 2013.02.06
자동화  (0) 2013.02.05
오퍼레이션 펭딩 모드 / 약어 매크로 / 레지스터 활용  (0) 2013.02.05
공백 지우기  (0) 2013.02.05
Posted by scii
:

파일 관련 기능

Vim/Tutorial 2013. 2. 4. 03:13 |

열었던 파일 다시 열기

a.c 파일을 작업하다가 e! b.c 를 불러들였다는 가정하에, 

그럼 현재 b.c 파일을 편집하고 있을텐데 여기서 <CTRL-^> 를 누르면 이전 파일인 a.c 파일이 열린다. 계속 <CTRL-^>  를 누르면 a.c 파일과 b.c 파일 사이를 오갈 수 있다. 

이렇게 한번 열었던 파일을 다시 열 수 있는 이유는, vim이 최근에 연 파일 목록을 기억하고 있기 때문이다.


한번에 여러 파일 열기

vim a.txt b.txt c.txt 라고 명령하면 a.txt가 열린 상태로 vim이 시작되지만, 내부적으로는 세 파일이 목록에 등록이 된다. 이 상태에서 :n 이나 :N 명령을 사용하면 파일 사이를 전환할 수 있다. 반복 횟수를 지정하여 :2n 이라고 하면 두 번째 뒤의 파일로 이동한다.

파일 사이를 이동할 때, 실제로는 현재 파일을 닫고 다음 파일을 여는 순서로 진행되므로 변경된 내용을 저장하지 않으면 역시 에러가 발생한다. 

만일 변경된 내용을 버리고 강제로 다른 파일을 열려면 느낌표(!) 기호를 넣어 :n! 이나 :N! 으로 명령하면 된다. 


여러 파일 닫기

여러 파일이 열려 있을 때 :q 로 종료하려고 하면 다른 파일이 있기 때문에 종료되지 않는 경우가 있다. 이를 무시하고 종료하려면 :q! 나 모든 윈도우를 다는 :qa 명령을 사용하면 된다.


Tip: 표준 입력을 통해서 읽어오기

유닉스, 리눅스, 맥에서는 다른 프로세스에서 출력된 결과를, 표준 입력을 통해 vim에서 읽어 올 수 있다. 

예를 들어, ps -ef 명령의 결과를 vim으로 가져오고 싶다면 쉘에서 'ps -ef | vim -' 명령을 실행하면 된다. (아니면, vim에서 'r !ps -ef' 명령을 내려도 된다.)

이때 '-' 는 표준 입력을 의미한다. 이 기능은 명령의 결과가 길거나 실행 결과를 편집해야할 때 유용하다. 




다양한 파일 저장법

파일을 저장하는 명령에는 :w 외에도 다른 이름으로 저장하거나 변경점이 있는지 확인해서 저장하는 명령도 있다. 


파일을 저장하는 다양한 명령어

:w filename                        파일을 저장

:sav filename                    현재 파일을 다른 이름으로 저장(save as)

:up                                        변경 사항(update)이 있는 경우에만 저장

:x                                         vim을 종료하면서 변경 사항이 있는 경우에는 저장 (일반 모드에서는 ZZ)

※ 새로운 파일로 저장하면서 편집 중인 파일도 바꾸는 명령: sav[!] {file}


변경 사항이 있을 때만 파일 저장하기

:up 명령은 변경 사항이 있는 경우에만 저장하고 변경 사항이 없을 때는 아무일도 하지 않는다. 이에 비해 :w 명령은 무조건 저장하므로 변경 사항이 없을 때도 디스크 입출력이 발생하는데, 여러 사용자가 공동으로 사용하는 서버에서는 이러한 디스크 입출력은 부담이 된다. 

따라서 :up 명령을 권장한다. 

:x 명령은 :up과 :q 명령을 결합한 형태로서 :wq 대신 사용할 수 있다. 많은 사용자들이 :wq 로 vim을 종료하는데, :w 명령은 무조건 저장하여 디스크 입출력을 발생시킨다는 단점이 있다. 

따라서, 이제부터는 :wq 대신 :x나 ZZ 의 사용을 권장한다.




창 분할

창 수평 분할

:sp 명령을 입력하면, 창이 위/아래로 분할된다. 단축키로는 <CTRL-W> s 이다.

다른 파일로 창을 분할하고 싶다면 :sp file 명령을 사용하면 된다. 기본적으로 새 창과 기존 창은 균등한 크기로 나뉘며, 새창의 크기를 직접 지정하려면 sp 명령 앞에 크기를 넣으면 된다. 

예를 들어 :10sp file 로 명령하면 새로 생성되는 창의 크기는 10행이 된다. 


창 수직 분할

:vs 명령을 입력하면(vertical), 창이 왼쪽/오른쪽으로 분할 된다. 단축키로는 <CTRL-W> v 이다.


창 분할 명령어 정리

:[#]sp [파일명]                        [#]CTRL-W s                상하로 창을 분할. 파일명 생략하면 현재 파일을 의미

:[#]vs [파일명]                        [#]CTRL-W v                좌우로 창을 분할

:[#]new [파일명]                        [#]CTRL-W n            상하로 분할하고, 위쪽에 새로운 창을 만듦

:[#]vnew [파일명]                        [#]CTRL-W v           좌우로 분할하고, 왼쪽에 새로운 창을 만듦


여러 파일을 분할된 창에 열기

vim을 시작하면서 여러 파일을 분할도니 창에 열고 싶다면 -o 옵션을 사용하면 된다. 

vim -o hello.c hello2.c

이렇게 옵션을 넣으면 위쪽 창에 hello.c 를, 아래쪽 창에 hello2.c 를 열어준다.

소문자 -o 대신에 대문자 -O 를 사용하면 창은 좌우로 분할된다.


창 크기 조절

창의 크기를 조절할 때는 <CTRL-W> 에 +,- 를 사용하여 크기를 키우거나 줄일 수 있다. 

그리고 현재 열린 창의 크기를 모두 균등하게 만들 때는 <CTRL-W> = 를 사용한다.


분할된 창의 크기를 조정하는 명령어

CTRL-W =                    모든 창의 크기를 동일하게 조절

CTRL-W [#]+                # 크기만큼 크기를 키운다. #을 생략하면 1을 키운다.

CTRL-W [#]-                # 크기만큼 크기를 줄인다.




파일 내용 비교하기

vim 을 시작할 때 -d 옵션을 사용하여 vim -d file1 file2 처럼 명령하면, file1과 file2 를 수직 창 분할로 열면서 내용이 서로 다른 부분을 강조하여 표시해준다.

윈도우용 vim에서는 여러 파일을 선택한 뒤에 마우스 오른쪽 팝업 메뉴의 '빔으로 Diff' 를 실행하면 된다.


※ 다른 점을 비교한 후, 다른 점을 가져오는 기능(do)과 다른 점을 복사해 넣는 기능(dp)도 사용할 수 있다 


:diffthis 명령을 양쪽 모두 실행시키면, vim이 실행되어있는 상태에서 두 파일을 비교할 수 있다. 

그리고, :diffget, diffput 의 명령을 이용하면 다른점을 파일로 복사해 올 수 있다.




탭 페이지

창 분할 기능에는 결정적인 단점이 있다. 바로 분할할 때마다 편집 화면이 반으로 줄어든다는 점이다. 

그래서 vim 7 버전에서는 전체 화면에서 여러 파일을 열 수 있는 탭 페이지 기능이 추가되었다.


탭으로 열기

:tabedit aa.c 라곰 명령하면 화면 상단에 탭이 생기면서 현재 파일몇에 aa.c 파일의 탭이 열린다.


탭 사이 이동하기

:tabprevious 명령은 이전(previous) 탭으로 이동한다. 

:tabnext 명령은 다음(next) 탭으로 이동한다.

단축 명령인 :tabn, :tabp 으로 할 수 있다.

단축키인 <CTRL-PageDown>, <CTRL-PageUp> 이 많이 쓰인다. 주의할 점은 터미널에서는 <CTRL-PageDown>, <CTRL-PageUp> 키가 스크롤다운, 스크롤업으로 예약되어 제댜로 작동하지 않을 수 있다는 점이다.


탭 이동 명령

:[#]tabn[ext]                                다음 탭으로 이동, 일반 모드의 gt와 동일    

[#]gt                                                #에 숫자를 지정하면 탭 번호가 지정됨

[#]<CTRL-PageDown>               


:[#]tabp[revious]                        이전 탭으로 이동, 일반 모드의 gT와 동일

[#]gT                                             #에 숫자를 지정하면 반복수가 지정됨

[#]<CTRL-PageUp>

:tabm[ove] [#]                            #번째 탭으로 현재 탭을 이동시킨다(0부터 시작).  #이 생략되면 가장 오른쪽으로 이동.


탭 열고 닫기

:tabclose 명령을 입력하면 탭을 닫을 수 있다.

새 파일을 탭으로 여는 명령은 :tabnew 이다. 파일명을 지정하면서 새 탭을 열고 싶다면 :tabnew filename 명령을 사용한다.


탭 생성과 종료 명령

:[#]tabe[dit] filename            #번째 탭에 파일을 연다. #이 생략되면 현재 탭 뒤에 생성. 번호는 0부터 시작

:[#]tabnew filename            #번째 위치에 비어있는 탭을 만든다.

:[#]tabc[lose]                          #번째 탭을 닫는다. #을 생략하면 현재 탭을 닫는다.

tabedit, tabnew, tabclose 의 앞에 숫자를 넣으면 열거나 닫는 탭의 숫자를 정할 수 있다.


Tip:    vim 시작 시 여러 파일을 탭으로 열기

vim을 시작하면서 여러 파일을 탭으로 열고 싶은 경우!! 이를 위해서 -p 옵션이 제공된다. 

예를 들어 vim -p aaa.txt bbb.txt 라고 명령하면 두 파일이 각각 탭으로 열린다

'Vim > Tutorial' 카테고리의 다른 글

공백 지우기  (0) 2013.02.05
파일 열기(고급)  (0) 2013.02.05
문자, 문자열 검색/치환  (0) 2013.02.02
vim 에러 처리  (0) 2013.02.02
명령어 표기법에 대해서  (0) 2013.02.02
Posted by scii
:

vim 에러 처리

Vim/Tutorial 2013. 2. 2. 04:21 |

만약, 터미널에서 vim으로 파일을 편집하다가 잠시 터미널로 나와서 다른 작업을 하고 실수로 다시 멀티태스킹했던 파일을 열 경우...(아래의 사진처럼)


즉, 파일을 두 번 열려고 할 경우 vim은 경고 메시지를 띄운다.


이런 에러가 나는 이유는..?

vim에서 파일을 열면 스왑(swap) 파일을 하나 생성한다. 생성된 스왑 파일은 원래 파일명 앞에 마침표(.)를 하나 붙여서 숨김 파일로 만들고, 뒤에는 .swp의 확장자명을 붙인다. 

이 스왑 파일에는 편집 과정의 모든 이력이 저장되어 실행 취소(undo) 용도로 사용되는데, vim이 정상적으로 종료되면 스왑 파일은 자동으로 삭제된다. 하지만 vim이 종료하지도 않았는데 또 같은 파일을 열면 스왑 파일을 만들지 못하기 때문에 에러가 발생한다.

이 에러에 대해 vim에서는 다섯 가지 해결책을 제시한다. 

               읽기 전용으로 파일을 연다.

E                무시하고 파일을 편집한다.

R                복구 모드로 파일을 연다.

Q                vim을 종료한다.

A                vim을 종료한다.(core 파일을 만들 수 있다면 만든다. 디버깅 용)


읽기 전용(O)으로 열어보는 경우, 기존 스왑 파일에 아무런 영향을 주지 않는다.  그러나 편집(E)으로 열어보는 경우, 나중에 서로 덮어쓰는 경우가 발생할 수 있다.


복구 모드(R)는 vim이 비정상적으로 종료하여 스왑 파일의 내용이 원본 파일에 저장되지 못한 경우에 사용된다. 이때는 안내 메시지가 약간 다르기 때문에 쉽게 판단할 수 있다.

이를 테면, 위의 사진에는 process ID 부분의 pid 번호 뒤에 'still running' 이라는 메시지가 있었지만, 비정상적으로 vim을 종료한 경우에는 pid 번호 뒤에 'still running' 메시지가 보이지 않게 된다. 또한 하단에 실행 가능한 명령에 D(delete)가 나타나게 된다.

따라서 이런 경우에는 복구 모드로 파일을 열면 스왑 파일에 저장된 파일 내용을 불러오게 된다. 그러면 사용자는 이전 원본 파일과 복구된 내용을 비교해서 저장 여부를 결정하면 된다.

복구 후에도 원본 스왑 파일은 삭제되지 않으므로 에러 화면이 계속 나타날 수 있다. 그러므로 복구를 해서 스왑 파일이 필요 없는 경우라면 안내 화면에서 d를 눌러 스왑 파일을 삭제해주도록 한다.


※ Q나 A는 아무런 작업을 하지 않고 vim을 종료하는 기능인데 A의 경우는 디버깅용 덤프 파일을 생성하는 점이 다르다.


'Vim > Tutorial' 카테고리의 다른 글

파일 관련 기능  (0) 2013.02.04
문자, 문자열 검색/치환  (0) 2013.02.02
명령어 표기법에 대해서  (0) 2013.02.02
Vim Key mapping  (0) 2013.01.16
유용한 명령어들 몇가지  (0) 2013.01.15
Posted by scii
:


플러그인 몇몇개를 설치하니까 visual studio 못지않다. 너무 좋다~!! 

그 전부터 vim과 vs2010, eclipse 를 번갈아 가면서 써왔었다. 하지만, 역시 코딩할 때 가장 편한것은 vim 편집기이다. 

vim 편집기의 장점은 마우스에 손이 거의 안간다는 것이다. 단점은 그 만큼 명령어들을 많이 알아야 한다는 것이다.

그런데 그 명령어들이 너무나 강력해서 그것이 단점을 보완한다. 

vim 편집기를 쓰고는 있었지만 비쥬얼 C++ 편집기처럼 함수 원형이 팝업으로 뜨지 않아서 좀 불편해했다. 그런데!

CTags, Tlist,  NERDTree, SrcExpl, AutoComplPop 플러그인으로 비쥬얼 C++ 이나 이클립스처럼 양 사이드에 함수/전역변수,

디렉토리/파일 트리구조가 생겼고, 함수의 원형도 볼 수 있게되었다. 비쥬얼 C++, 이클립스 편집기들을  쓸 일이 없어졌다. 


'Vim > etc' 카테고리의 다른 글

Vim Editor  (0) 2013.02.02
[Linux] vim 나의 설정파일  (0) 2013.01.16
[Windows] gvim 설정파일  (0) 2013.01.15
구문강조 만들기  (0) 2012.12.05
VIM에서 유용한 설정들.  (0) 2012.05.02
Posted by scii
:

폴딩하기

: 코드해석이나 코드작성할 때 참고하지 않아도 되는 함수나 블록들을 폴딩화 시키면 좀 더 깔끔하게 작업을 할 수 있다.

zf    :    폴딩을 한다.

zo    :    폴딩을 연다.

zc    :    폴딩을 닫는다.

블록 지정한 후 zf 를 하면 폴딩이 된다.

폴딩을 여는 것은 zo, 닫는 것은 zc 이다.




위치 마킹하기

: 자주가는 함수부분이나 특정한 곳을 임의로 마킹할 수 있다. 그러면 작업 속도가 좀 더 빨라질 것이다.

m[임의의 알파벳]    :    마킹

`[마킹한 알파벳]    :    마킹된 위치로 돌아갈 때 (` 기호는 backtick을 의미)


마킹의 세가지 종류

1. A-Z    :    전역 마킹 - 현재 파일을 포함한 다른 파일 간의 마킹이 가능하다. (다른 파일간에도 이동)

2. a-z    :    지역 마킹 - 현재 파일 내에서만 마킹이 가능하다. (현재 파일에서만 이동)

3. ~/.viminfo 파일에서 자동으로 지정한 0-9


:marks    :    마킹한 모든 정보를 보여준다. 




편집중에 명령어의 결과값을 편집기에 삽입하기

파일을 합칠때 혹은 명령을 내린 후 콘솔화면에 출력되는 결과가 필요할 수도 있다. 그럴 때 쓰면 유용하겠다.

:r ![명령]    :    명령이 수행된 결과가 현재 커서의 위치에 끼워 넣어진다.

ex) :r !file1.c    :    현재 커서의 위치에 file1.c 내용이 끼워 넣어진다.




'Vim > Tutorial' 카테고리의 다른 글

vim 에러 처리  (0) 2013.02.02
명령어 표기법에 대해서  (0) 2013.02.02
Vim Key mapping  (0) 2013.01.16
vim Tutorial (PDF파일)  (0) 2012.05.09
vi editor  (0) 2012.05.02
Posted by scii
:

구문 강조 적용


1. $HOME/.vim/ 에서 syntax 디렉토리를 만든다. 이 디렉토리는 구문강조를 위한 디렉토리이다.


2. syntax 디렉토리안에 확장자.vim 파일(구문 강조파일이 된다)을 만든다. 파일이 있으면 그 디렉토리안에 갖다둔다.

내가 만든 vex 구문 강조 파일

vfl.vim

vfl(130225_new).vim


3. $HOME/.vimrc 파일을 연다. 기본적으로 syntax on은 되어있을 것이다.

제일 끝 줄에 이것을 추가한다.

au BufRead,BufNewFile *.vfl set filetype=vfl.vim 

이것은 확장자가 vfl인 파일을 열거나 새로운 파일을 만들 때 자동적으로 vfl.vim을 쓴다는 것이 된다.


이로써 구문 강조는 끝이난다. 


내가 수정한 jellybeans 컬러스키마!!  vex에 맞게 수정하였다.

jellybeans_VEX.vim






들여쓰기 적용

※  참고로 vex는 C언어를 기반으로 만들어져있기때문에 C언어의 들여쓰기를 그대로 적용시키면 된다.


1. /usr/share/vim/vim73/indent 디렉토리로 이동한다.


2. c.vim 파일을 하나 복사하여 vfl.vim 파일로 만든다.(여기있는 파일들은 모두 관리자모드로 해야한다)

내가 만든 vex 들여쓰기 파일

vfl.vim


3. $HOME/.vimrc 파일을 연다.

set ci

이것을 적용시킨다. 이것은 c 스타일로 들여쓰기를 셋팅한다는 것이다.


이로써 구문 강조 및 들여쓰기 적용이 끝이난다.

Posted by scii
:

vim 홈페이지

http://www.vim.org/


확장 팩(syntax, indent 등등).

vim73_46rt.zip


vim 편집기 설치 프로그램.

vim73_46w32.zip


설치 방법

1. vim73_46w32.zip의 압축을 푼다. 

2. vim73_46rt.zip의 압축을 푼다. 

3. 하나의 폴더에 다 집어넣는다.

4. vim.exe 를 windows 폴더에 집어넣는다.

5. 윈도우 키 + r 을 눌러 실행창을 띄운 후 vim을 입력하여 실행한다.




설치하는 vim 편집기.

이것은 GUI 버전이다.

gvim73_46.exe


'Programming > Related Files' 카테고리의 다른 글

함수 그래프를 그리는 프로그램  (0) 2012.12.20
Dev C++ Potable  (0) 2012.12.05
Posted by scii
: