vim은 문자 하나부터 단어, 문자열, 각종 패턴까지 다양한 방식의 문자를 검색할 수 있다. 이러한 검색 기능은 크게 문자 검색하기와 문자열 검색하기로 나눌 수 있다. 

물론 문자열 검색하기로도 문자 하나를 검색할 수 있지만, 나중에 자동화(매크로) 기능 등을 사용할 때는 문자 검색하기 기능을 주로 쓰기 때문에 따로 알아두는 것이 좋다.


문자 검색하기 : Find Charactor

어느 파일에서 f, 를 입력해보자. 그 후 세미콜론(;) 과 쉼표(,) 를 눌러보자. 그러면 방식을 쉽게 이해할 수 있을것이다.

즉, f는 다음에 나오는 문자를 탐색하라는 명령이다. f다음에 쉼표를 입력했으므로 쉼표를 찾는다. 

세미콜론(;)은 '다음 검색' 명령이며, 쉼표(,)는 '이전 검색' 명령이다.


문자 검색 기능

fc                    문자 c를 전방 검색

Fc                    문자 c를 후방 검색

tc                    문자 c를 전방 검색하여, 검색어의 한 칸 앞으로 이동

Tc                    문자 c를 후방 검색하여, 검색어의 한 칸 뒤로 이동

;                    가장 최근에 검색한 명령을 재검색

,                    가장 최근에 검색한 명령을 반대 방향으로 재검색




문자열 검색

문자열 검색이란 하나 이상의 문자나 기호, 공백으로 이루어진 문장 혹은 패턴을 찾는 기능이다.

일반 모드에서 /re라고 입력하면 문자열 re를 검색한다. 여기서 슬래쉬 문자(/)는 검색하는 기능을 호출하며, 명령행 모드를 호출하는 콜론(:)처럼 커서가 하단으로 이동한다.

문서 내에 검색 결과가 여럿이라면 n과 N을 이용해서 이동할 수 있다. 또한, /를 누른 후 위, 아래 화살표나 j,k를 사용하면, 이전에 검색했던 문자열도 불러올 수 있다.

n                    다음 검색 결과로 이동

N                    반대 방향의 검색 결과로 이동


커서 위치의 단어 검색

커서가 위치한 특정 단어를 검색하는 경우에는 단어를 입력하는 대신 별표(*)를 누르면 된다. 

하지만 별표로 검색하면 단어 단위로만 검색하게 된다. 따라서 앞뒤로 공백이 있거나 문장부호로 분리된 문자열만 검색 대상이 된다.

화면 하단에 나타나는 검색어도 '찾는문자열' 을 의미하는 정규 표현식인 \<찾는문자열\> 로 바뀐다.


※ 검색 후 발게 표시된 단어를 해제하고 싶을 때

1. /wejldkfjj123lj 처럼 절대 검색될 수 없는 문자열을 입력. 하지만 매우 긴 문서에서는 처리속도가 상당히 느리다.

2. :nohl 을 명령한다. 이 명령은 굳이 검색에 의해서가 아닌 하이라이트 부분까지도 모두 제거.

2. :set hls! 이거나 set nohls 를 명령한다. !는 toggle이다. 즉, on/off




문자열 교체하기

교체(substitution) 명령은 명령행 모드에서 사용한다. 

:%s/찾을문자열/바꿀문자열/g 

맨 앞은 교체 명령이 적용될 범위이고, s는 교체 명령어이다. s 다음에 나오는 문자 하나는 교체 명령어에서 사용할 구분자가 되는데, 일반적으로 슬래쉬(/) 를 사용한다. 

하지만 다른 문자를 사용해도 상관없다. 예를 들어, 슬래쉬 대신에 쉼표를 구분자로 사용한다면...

:%s,찾을문자열,바꿀문자열,g 이렇게 적을 수 있다.


문자열 교체 옵션

g                범위 내에서 검색된 모든(global) 문자열을 교체

i                대소문자를 무시(ignore case)

c                문자열을 교체하기 전 교체 여부를 확인(confirm)

e                교체 과정 중 에러를 무시한다. 에러 메시지도 표시하지 않음


문자열 교체 전 확인하기

%s,aaa,bbb,c 이렇게 명령을 한다면...교체 여부를 물어올 것이다.

확인 옵션인 c가 지정되면 일곱 가지 확인 입력(y/n/a/q/l/^E/^Y)을 선택할 수 있다.

y                교체를 허용

n                교체를 거부

a                앞으로 남은 모든(all) 교체를 실행

q                교체 작업을 끝냄(quit)

l                현재 행(line)의 교체 작업만 하고 교체 작업을 끝냄

^E                아래로 한 행을 스크롤하여 보여줌

^Y                위로 한 행을 스크롤하여 보여줌


교체 문자열에 구분자가 포함된 경우

교체 명령어에서 구분자로 슬래쉬를 사용한다면, 교체할 문자열에 슬래쉬가 포함되었는지를 주의해야 한다. 예를들어 /home/sun을 /user/sun 으로 바꾸려고 다음과 같은 명령을 사용하면 구분자가 너무 많다는 에러가 발생한다

:%s//home/sun//user/sun/g

이는 /home/sun이나 /user/sun에 포함된 슬래쉬를 모두 구분자로 판단했기 때문이다. 이런 에러를 막으려면 교체 문자열에 포함된 슬래쉬를 이스케이프(escape)해야 한다. 

이스케이프(escape)란, 명령행을 해석할 때 해당 문자를 제외(escape)한다는 의미이며, 해당 문자 앞에 역슬래쉬(\)를 붙이면 된다. 

그러나 이스케이프 횟수가 많아지면 가독성이 나빠지기 때문에, 차라리 구분자를 다른 문자로 바꾸는 것이 더 좋은 방법이 될 수 있다.


이스케이프한 명령과 구분자를 다른 문자로 바꾼 명령을 비교

:%s\/home\/sun/\/user\/sun/g

:%s,/home/sun,/user/sun/g

이 두 명령의 결과는 동일하다.




특수 문자 교체하기

특수 문자란 시각적으로 출력 가능한 일반 문자나 숫자, 기호를 제외한 나머지 문자로서 탭과 개행 문자(엔터 역할)가 대표적입니다. 이런 특수 문자들은 입력하는 방법이나 찾는 방법이 일반 문자와 다르다.


운영체제에 따른 텍스트 파일 저장 방식

도스                                    CR+LF

유닉스(맥 OS X 포함)            LF

구형 매킨토시(OS 9이하)        CR

※ CR(Carriage Return): ASCII의 13번 코드이며 커서를 행의 시작 부분으로 보낸다.

※ LF(Line Feed): ASCII의 10번 코드이며 커서를 다음 행으로 내립니다.


윈도우는 도스에서 발전했기 때문에 도스 형식을 사용한다. 따라서 엔터를 칠 때마다 CR과 LF 문자가 입력된다. 

유닉스 형식에서는 엔터를 칠 때 LF 하나만 입력된다. 이런 차이 때문에 도스에서 만든 텍스트 파일을 유닉스에서 열면 각 행의 끝에 CR 문자가 하나씩 더 보이고, 반대로 유닉스에서 작성된 텍스트 파일을 윈도우에서 열면 개행 문자를 찾을 수 없으므로 모든 행이 한 줄로 길게 붙어서 보인다.

이러한 형식 차이 때문에 서로 다른 운영체제끼리 텍스트 파일을 주고받으려면 변환 작업을 거쳐야 한다. 즉, '도스->유닉스'로 변환할 때는 CR+LF문자를 찾아서 CR문자를 빼주고, '유닉스->도스'로 변환할 때는 LF문자를 찾아서 앞에 CR 문자를 더해주어야 한다.

그런데 vim은 편집할 파일을 텍스트 파일로 간주하기 때문에 <CR> 같은 특수 문자는 화면에 표시하지 않는다. 그러나 변환 작업에서는 <CR> 문자를 보고 지워야 하기 때문에 특수 문자도 표시해주는 바이너리 모드에서 작업해야 한다.


바이너리 모드

vim에서 바이너리 모드로 파일을 여는 방법은 두 가지가 있다. 

첫째는 vim시작시 -b 옵션을 추가하여 'vim -b 파일명'으로 명령하면 된다. 그러나 윈도우용 vim은 이 방법을 쓰기가 번거롭다.

두 번째는, vim을 실행한 후 바이너리 모드(:set binary)를 켜고 파일을 여는 것이다.


1. 윈도우용 gvim실행

2. :set binary 명령으로 바이너리 모드 옵션을 켠다.

3. 파일 열기를 실행해서 파일을 읽어 들인다.


도스 형식 파일을 유닉스 형식 파일로 변환하기

<CR> 문자(^M)를 제거하면 유닉스 텍스트 형식이 된다. 

교체 명령어에서 찾을 문자열은 ^M으로 지정하고, 바꿀 문자열에는 아무것도 지정하지 않는다. 그런데 주의할 점은 화면에 보이는 ^M 문자는 특수 문자이기 때문에 ^과 M을 각각 입력하지 않고, <CTRL-V> <CTRL-M>을 눌러서 입력해야 한다.

만일 이 방식이 마음에 들지 않으면 ^M대신 \r을 사용하여 :%s/\r//g 라고 명령해도 된다.

또한 윈도우용 vim에서는 <CTRL-V>가 붙여넣기 기능으로 사용되므로, 이런 문제를 피하기 위해 <CTRL-V> 대신 <CTRL-Q>를 사용해도 된다.

모든 행이 한 줄로 붙어서 나온다. 이는 메모장이 유닉스 텍스트 형식을 인식할 수 없어 때문에 일어나는 결과이다.


유닉스 형식 파일을 도스 형식 파일로 변환하기

유닉스 형식에서 작성된 텍스트를 도스 형식으로 변환하기 위해서는 행 끝에 <CR> 문자를 추가해야 하며, 이 작업은 굳이 바이너리 모드에서 할 필요가 없다.

유닉스 형식의 텍스트 파일을 연 다음 :%s/$/\^M/g 라고 명령한다. 찾을 문자열은 행의 끝을 의미하는 $이고, 교체할 문자열은 <CR> 문자를 의미하는 ^M을 이스케이프하여 역슬래쉬를 앞에 붙인다.


텍스트 형식 변환 옵션

실제로 '유닉스 -> 도스', '도스 -> 유닉스' 로 변환할 때는 간단한 방법이 존재한다. 바로 fileformat 옵션을 설정하는 방법이다.

예를 들어 :set fileformat=dos 라고 설정하고 저장하면 해당 파일이 도스 형식으로 저장된다. dos 외에 unix, mac 등을 지정할 수 있다.

fileformat은 ff로 줄여서 쓸 수도 있다.




※ 현재 커서가 위치한 문자의 ASCII 코드 값을 알아내는 명령은 :ascii 이다. :as 로 줄여 써도 된다.

리눅스라면, 쉘에서 man ascii 명령어를 사용해 전체 ASCII 코드 값을 볼 수 있다.


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

파일 열기(고급)  (0) 2013.02.05
파일 관련 기능  (0) 2013.02.04
vim 에러 처리  (0) 2013.02.02
명령어 표기법에 대해서  (0) 2013.02.02
Vim Key mapping  (0) 2013.01.16
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
:

명령어 문법을 표기할 때 괄호가 없거나 { } 괄호로 둘러싸인 부분은 필수(required)로 입력해야 하며, [ ] 괄호는 옵션(optional)으로 생략 가능한 부분이다.


ex)    cmd [ -c ]  [ -s {expr | sfile} ]  {dfile}


예를 들어 위와 같은 명령에서 -c는 써도 되고 생략해도 되며, -s {expr | sfile} 부분도 옵션이지만 일단 -s가 쓰인 경우라면 expr이나 sfile 중 하나는 꼭 써야 한다는 뜻이다.

그리고 마지막의 dfile은 빼먹으면 안 되는 부분이다.


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

문자, 문자열 검색/치환  (0) 2013.02.02
vim 에러 처리  (0) 2013.02.02
Vim Key mapping  (0) 2013.01.16
유용한 명령어들 몇가지  (0) 2013.01.15
vim Tutorial (PDF파일)  (0) 2012.05.09
Posted by scii
:

Vim Editor

Vim/etc 2013. 2. 2. 00:08 |

에디터 별 난이도 곡선

유닉스나 리눅스에서는 vim 외에도 이맥스(Emacs)라는 유명한 데이터가 있다. 이맥스는 프로그래밍에 최적화된 에디터로, 디버거나 다른 외부 프로그램과의 연동, 플러그인의 확장 등이 매우 강력하다.

이 에디터는 해커들을 위한 강력한 프로그래밍 환경이 필요하다고 생각한 자유소프트웨어재단(Free Software Foundation)의 설립자 리처드 스톨만이 만들었다. 

프로그래밍 환경을 개선하려는 목적은 vi와 같지만, 이맥스는 더 나중에 만들어진 에디터이고 리차드 스톨만 본인이 뛰어난 해커다보니 프로그래머의 가려운 부분을 긁어줄 형태가 되었다. 

결국 이맥스는 해커들의 습성대로 엄청난 확장성을 부여한 에디터로 탄생한다. 

그러나 이맥스는 프로그래밍에 최적화되어있다 보니 범용 에디터로는 적합하지 않다는 의견도 많다. 그래서 vim을 잘 다루는 사람 중에는 이맥스를 싫어하는 사람도 많다. 개인적으로는 이맥스도 뛰어난 프로그래밍용 데이터라고 생각하기에, 여건이 된다면 꼭 한번 다뤄보기를 권장한다. 

단, 충고를 하나 하자면 vim을 먼저 배운 뒤에 이맥스를 배워야만 도중에 포기하지 않을 것이다. 왜냐하면 이맥스는 그 기능이 vim보다 훨씬 방대하기 때문이다. 

- "손에 잡히는 vim" 책 본문 내용 중 발췌



vim 에디터의 특징

- 대부분의 운영체제를 지원한다.

- 매우 작고 빠르다. (낮은 사양에서도 잘 작동)

- 텍스트 환경인 터미널이나 콘솔에서도 작동한다.

- GUI 환경도 지원한다.

- 프로그래밍 언어별 특수 기능을 지원한다. (컴파일, 에러 메시지 처리 등)

- 플러그인에 따라 다양한 확장 기능을 지원한다.

- 내장 스크립트로 원하는 기능을 만들 수 있다. (커스터마이징 등)

- 외부 명령어와 연동할 수 있다.

- 작업 녹화나 자동화, 배치(batch) 기능을 제공한다.


대표적인 vim 7.x 버전의 기능

- 실시간 괄호 짝 찾기 기능

- 문법 검사 기능

- 향상된 자동 완성

- 유니코드와 국제화 규격에 의한 멀티바이트 지원 강화

- 탭 페이지 기능 (여러 파일을 동시 편집)

- 정규 표현식 기능 강화(grep 기능 내장)

- 압축 파일, 네트워크 파일 검색 기능

- Vim 스크립트 최적화, 프로파일링, 디버깅 기능

- undo 기능 강화(undo branch 등의 기능 제공)


Vim 에디터 참고 웹 사이트

- vim 공식 사이트 : http://www.Vim.org/

- vim 문서 프로젝트 : http://vimdoc.sourceforge.net/

- vim 한국 사용자 위키 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Vim

- vim 팁을 모아둔 위키 : http://vim.wikia.com/wiki/Vim_Tips_Wiki

- 한국 리눅스 문서 프로젝트 KLDP : http://kldp.org/


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

[Linux] vim 나의 설정파일  (0) 2013.01.16
Plug-in을 설치한 vim 편집기 모습  (0) 2013.01.16
[Windows] gvim 설정파일  (0) 2013.01.15
구문강조 만들기  (0) 2012.12.05
VIM에서 유용한 설정들.  (0) 2012.05.02
Posted by scii
:

Vim Key mapping

Vim/Tutorial 2013. 1. 16. 17:10 |

I want to map <Ctrl + S> as Save command in Vim.

Becuase <Ctrl+s> stops the output in the terminal, it's important to change the shortcut first using stty command. 



># stty stop ^K        // vim에서 Ctrl+s를 쓰기위하여 리눅스의 stty중 stop부분을 Ctrl+K로 바꿨다.


In the terminal, <Ctrl+S> command is stop printing inputs 


># vim .vimrc

map <C-S> :w<CR>                 'command mode

map! <C-S> <Esc>:w<CR>       'insert mode        // map에 !를 붙여서 insert모드에서도 가능하게끔 하였다.




위에 처럼 셋팅하면 vim 에디터에서 ctrl+s로 저장을 할 수 있다. 

하지만 그 순간뿐이다. 재부팅하거나 터미널을 다시 시작하면 위에 했던 일련의 셋팅들이 모두 초기화된다. 

그래서 자신의 shell 환경설정 파일을 수정해야 한다. 

내 shell은 bash shell 이므로 $HOME ./bashrc 를 수정하였다. 




References

1. How to map keys in vim, http://how-to.wikia.com/wiki/How_to_map_keys_in_vim

2. Mapping keys in Vim - Tutorial, http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-_Tutorial_%28Part_1%29

3. Mapping Keys, http://newbiedoc.sourceforge.net/tutorials/vim/mapping-vim.html.en


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

vim 에러 처리  (0) 2013.02.02
명령어 표기법에 대해서  (0) 2013.02.02
유용한 명령어들 몇가지  (0) 2013.01.15
vim Tutorial (PDF파일)  (0) 2012.05.09
vi editor  (0) 2012.05.02
Posted by scii
:

===== 2015.12.26 =====


vimSet.zip



===== 2015.05.09 =====

font 설정 업데이트 됨.

ex) set guifont=Monaco \9

_vimrc__2015_05_09


===== 2014.08.31 =====

최신으로 업데이트 됨.

_vimrc__2014_09_06



vimrc_13_02_20

jellybeans.vim


===== Vundle 을 설정한 .vimrc 파일 =====

_Linux_vimrc_130324_

=============================



" C Compile Short Cut 에서...

map <F3> :w<CR>:!gcc *.c -g -Wall -W -O2 -o %<<CR> 

이렇게 하면, 디렉토리안에 확장자가 c인 모든 파일들을 묶어서 컴파일 진행한다.


 - 추가 된 부분 - 


taglist에  추가

let g:Tlist_WinWidth=24                        " 창의 너비

let g:Tlist_Display_Tag_Scope=1         " 태그범위(함수, 매크로, 구조체등) 표시

let g:Tlist_Display_Prototype=1         " 함수 원형 표시

let g:Tlist_Sort_Type="name"            " 태그리스트 정렬(소스코드 위치 순서가 아닌 이름 순서)

"let g:Tlist_Use_Right_Window=1      " 태그리스트 창을 우측에 표시





" command mode <Ctrl+S> save

map <C-S> :w<CR>

" insert mode <Ctrl+S> save

"map! <C-S> <Esc>:w<CR>        //  입력모드에서 저장할 때

imap <C-S> <ESC>:w<CR>a        // 이것도 입력모드에서 저장할 때 셋팅인데 마지막에 다시 입력모드로 돌아가게끔 하였다.


이것 처럼 vim에서 ctrl+s 로 저장을 하려면 쉘의 stty를 수정해야 한다. 왜냐면, 겹치기 때문이다.

그래서 .bashrc 에서 stty stop ^K 로 설정해야 한다. bashrc에서 설정해야 재부팅해도 계속 유지된다.




"vim window position <Ctrl+w+w> to <Ctrl+L>

"vim 에서 창간의 이동 단축키 <Ctrl+w+w> to <Ctrl+L>

map <C-L> <C-w>w

imap <C-L> <ESC><C-w>w




조금 많이 변경되어서 생략. 위의 파일만 계속 업데이트할 예정!

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

Vim Editor  (0) 2013.02.02
Plug-in을 설치한 vim 편집기 모습  (0) 2013.01.16
[Windows] gvim 설정파일  (0) 2013.01.15
구문강조 만들기  (0) 2012.12.05
VIM에서 유용한 설정들.  (0) 2012.05.02
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
: