폴딩 기능 이용


폴딩 기능은 별로 구태여 볼 필요가 없는 부분을 접어서 보기 편하게 해 주는 기능으로 이렇게 사용한다.


접기(folding)

접고 싶은 부분을 비주얼 모드로 영역 지정한 후 zf 키를 누르면 해당 부분이 접어진다


펴기(unfolding)

접힌 부분에 커서를 위치시키고 zo 키를 눌러주면 접힌 부분이 펴진다


즉, 아래의 사진과 같이 지정된 영역을 접고 편다.




이를 응용해서 함수의 여는 중괄호 ‘{’ 위에 커서를 위치시키고 명령 모드에서 v]}zf 명령을 내리면 비주얼 모드로 진입하여(v) 함수의 코딩된 블록이 지정되어(]}) 접힌다(zf).


함수의 여는 중괄호 '{' 위에 커서를 위치시키고 v]}zf

비주얼 모드로 진입하여(v) 함수의 코딩이 이루어진 블록이 지정되어(]}) 접힌다(zf).




이 키가 다소 복잡하고 자주 사용하므로 아래와 같이 키 매핑을 해두는 것도 좋다. 


map <F1> v]}zf


※ 키 매핑은 앞서 포스팅한 이곳을 참조하면 된다



Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 


064 폴딩 기능.apkg

vim에서 셸 명령 사용하기


vim으로 작업하다 보면 셸에서 어떤 명령을 실행해야 하는 경우가 종종 발생할 수 있다. 파일 리스트를 확인하거나 네트워크의 IP를 확인해야할 때도 있고 필요한 데이터를 만들거나 연산할 상황이 발생하는 등 다양한 상황이 발생하는 것이다


이런 경우 vim을 닫고 셸 명령을 실행하고 다시 vim을 실행하는 일련의 번거로움을 없애기 위하여 vim에서 바로 셸 명령을 실행하고 실행이 종료되면 vim으로 바로 복귀할 수 있게 하는 명령 형식이 있다.


, 아래와 같이 명령 라인에 느낌표를 앞에 붙이고 셸 명령을 입력하는 것이다.


명령 라인 :![셸 명령]


명령을 수행하기 위해 잠깐 vim을 빠져나왔다가 명령이 수행된 후 [Enter]를 눌러 다시 vim으로 돌아온다


가령, 다음과 같이 명령할 수 있다.


명령 라인 :!ls


vim을 빠져나가 현재 디렉터리의 파일 및 디렉터리의 리스트를 보여준다


실행 결과는 다음과 같다. 





셸에서 원하는 명령을 수행하고 다시 vim으로 돌아오려면 셸에서 [Enter] 키를 누르면 된다.



셸 명령의 결과로 화면에 출력되는 내용이 필요할 수 있다. 그 때는 다음과 같은 형식으로 명령한다.


명령 라인에 :r ![셸 명령]


셸 명령으로 수행된 결과 데이터를 현재 커서의 위치에 삽입 



명령 라인에 :r !ls


셸 명령 ls 의 결과로 나타난 파일 및 디렉터리 리스트를 현재 커서 위치에 삽입


참고로 명령라인 :r [파일명] 형식의 명령은 현재 커서의 위치에 해당 파일명의 파일에 기록된 내용을 삽입하기 위하여 사용한다. 그래서 test1.txt 파일을 수정하고 있는데, :r test2.txt 명령을 내리면 현재 커서의 위치에 test2.txt의 내용이 삽입된다



Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 



매크로란 무엇인가?


앞에서 배운 레지스터 중에서 우리가 임의로 사용할 수 있는 임시 저장소로 알파벳 레지스터에 대해서 배운 바 있다.

 

이 알파벳 레지스터에는 보통 데이터가 들어가지만 일련의 키 입력을 저장할 수도 있다.

 

이 때, 일련의 키 입력레지스터에 저장하고 이것을 다시 실행할 수 있도록 만드는 것vim매크로라고 한다.



매크로 기록 및 사용


매크로를 기록하고 사용하는 과정은 다음과 같다. 


1) 매크로 기록 시작 

q와 키 입력을 저장할 알파벳 레지스터에 해당하는 알파벳을 누르면 이후에 이루어지는 키 입력이 해당 알파벳 레지스터에 기록되기 시작한다


2) 키 입력

매크로로 지정할 키를 실제로 사용하면서 입력한다.


3) 매크로 기록 완료

원하는 키 입력을 마친 후 q를 누르면 매크로 기록이 완료된다.


4) 매크로 사용

명령 모드에서 @알파벳 레지스터에 해당하는 알파벳을 같이 누르면 레지스터에 기록된 매크로를 실행한다.



매크로 기록 및 사용 사례


그럼 실제 사용해보면서 매크로를 익혀보자. 


반복적으로 사용되지만 키 입력이 귀찮은 경우에 해당하는 일련의 키 입력을 매크로로 지정하는 것이 바람직할 것이다. 


소스코드를 작업하다 보면 들여쓰기를 해야하는 경우가 많다. 그 때마다 일일이 행의 처음으로 돌아가서 편집모드로 들어간 후 [Tab] 키를 누른 후 다시 명령 모드로 돌아오는 과정이 조금 귀찮았던 것 같다. 이것을 매크로로 만들어 보자


1) 매크로 기록 시작


알파벳 레지스터 중 a매크로를 기록한다.


일단은 명령 모드에서 qa 를 눌러 매크로 기록을 시작한다


다음의 사진과 같이 하단에 '기록 중 @a라는 표시가 나타난다.




2) 키 입력


다음과 같이 기록할 키 입력을 수행한다.

우선 커서가 행의 공백이 아닌 첫 글자에 위치하도록 캐럿(^) 키를 누른다.

 

편집 모드로 진입하기 위하여 i키를 누른다.

 

이제 [Tab]키를 눌러 탭을 삽입하고 [Esc] 키를 눌러 명령 모드로 돌아온다.


3) 매크로 기록 완료


q를 눌러 매크로 기록을 마친다.



4) 매크로 사용


명령 모드에서 @a 를 눌러 a 레지스터에 기록된 매크로를 사용해본다.


이 때, 행의 앞에 탭을 3개를 한꺼번에 삽입하고 싶으면 명령 모드에서 3@a 를 누르면 된다. 그러면 @a 3번 반복하여 실행하므로 탭이 3개가 삽입되는 효과가 나타난다.



Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 


062 매크로 사용.apkg


+ Recent posts