리눅스

vim 단축명령어

닥치고개돌 2019. 5. 17. 17:38
728x90

:vs 창분활 가로
:sp 세로분할

ctrl,w,w 커서 이동
ctrl,w 방향키 방향키 커서방향이동
ctrl w shift (누른채로)방향키 : 창 모양 이동

yy 복사
p 붙여넣기
dd 삭제 

gg 맨위로
G 맨아래로

ctrl + p : 현재 디렉토리 모든 파일명 검색

nerdtree

A 맨뒤
I 맨앞 편집모드

shift v 줄단위로 블럭모드
ctrl v : 블럭모드

블럭 후
shift + i 편집 후 esc

shift 5 블럭 ( -> )  { -> }


----------------------------블로그


(그림 누르면 큰화면)

1. 세로창 나누기 
: vs
2. 가로창 나누기 
: sp

※나눈 창 활용하기

:sp ../폴더/열고 싶은 파일
이런식으로 다른 파일도 열어서 볼 수 있다. 그러니까 각각 다른 소스파일을 두 창에 열어두고 보는 것이 가능함. (13-2에서 설명한 탭키 자동완성도 된다.)

:e./
입력하면 현재 소스가 있는 폴더 및 파일들이 뜬다. 파일에 대고 엔터쳐서 열 수 있다. 
:e../
하면 상위폴더에서부터 열린다.


3. 창 옮겨다니기
Ctrl + ww

4. 치환

1) apple을 _apple_로 해당파일 전체에서 모두 바꾸기
:%s/apple/_&_/g

2) 현재줄부터 아랫쪽 5번째 라인(현재줄부터 상대적인 위치)까지 aa를 bb로 치환
(현재위치는 . 으로 표기한다.)
:.,+5s/aa/bb/g 

3) 현재줄부터 20라인(20라인은 절대적인 위치)까지 aa를 bb로 치환 (줄번호는 :se nu 로 확인할 수 있다.)
:.,20s/aa/bb/g 

4) 소스상 10번째 줄부터, 소스상 20번째 줄까지 aa를 bb로 치환 
:10,20s/aa/bb/g 


5) 현재 폴더 내부 .c 파일들에서 before라는 단어를 모두 after로 바꾸려고 할 때

먼저 터미널 해당 폴더 위치에서 vim을 실행한다. 
$vim *.c
를 입력하면, 현재 디렉토리의 모든 .c 파일이 vim 버퍼로 로딩된다. 그 다음, 
:bufdo %s/before/after/g | w 
를 입력한다.(w는 버퍼의 해당하는 파일을 디스크로 다시 되돌려 보낸다.)

6) 반복적으로 뭔가 바꿀 게 있는데 도중에 안바껴야 하는 단어도 있어서, 확인해가면서 해야할경우
바꿀 단어의 첫부분에 갖다대고, Shift + v 로 블록모드를 활성화시킨다음 방향키등을 통해 바꿀부분을 블록설정한다. 그다음 cw를 누르고 대체할 내용으로 쓴다. 그다음, n이나 N을 누르면 다음 바꿀 단어에 자동으로 커서가 옮겨간다. 이때 . 을 누르면 자동으로 바꿀 내용으로 치환된다. 안바꿀거면 n이나 N으로 또 다음 단어로 가면 된다.

. 키가 최근동작을 반복하는 기능인데, 이를 이용하기 위해 cw를 사용해서 한번에 단어를 바꾸고 cw의 동작을 반복하는것이다. 익숙해지면 아주 유용하다.

5. 전체 줄맞추기
ggVG=

6. 괄호 하나에 대응하는 괄호 짝 찾아가기
짝찾고싶은 괄호에 커서 대고 %

7. 찾고싶은 글자 찾기 (:?문자열 과 같은 기능)
찾으려는 문자열에 커서를 두고 *나 #를 누른다. 검색결과를 왔다갔다 할 때는 n/N.

8. 태그 달아주기
터미널에서
$ctags -R *

9. 태그 달아준 후 함수 찾아다니기

소스에서 코드 흐름을 따라다닐 수 있다.
vim 들어가서 함수에 커서 옮겨놓고 ctrl + }
돌아가려면 ctrl + t


10. 복사
한 줄 복사 : yy, Y
만약 13줄 복사하려고 한다면 :  13yy
그 줄 끝까지 복사 : y$
한 단어 복사 : yw


11. vi 문자에 입혀지는 색 바꾸기.
:colorscheme 내가쓸색스킴.
:color 색스킴
:colo 색스킴
주석이 어두운 파랑색이라 읽기 괴로울 때. desert 추천.
그 외 스킴들은, 
/usr/share/vim/vim버전 / colors 에서 확인할 수 있다.
이건 사실 cd 해가지고 내 홈에서 vi .vimrc 해서 vim 설정파일 열어가지고, 여기다가 설정하는게 낫다.
자세한 것은 vimrc 설정 뭐 이렇게 검색하면 엄청 많이 나온다.

12. 읽기 전용 모드로 vim 열기.
vi -R 읽을파일.
실수로라도 수정하면 안되는 파일을 열 때 쓴다.


13. 자동완성.
마치 visual studio 쓸 때 assist x 같은 느낌.
적당히 머릿글자를 약간 치고 ctrl + n 이나 ctrl + p 를 누르면 제안 목록이 좍 뜬다. 하지만 assist x보다는 어쩐지 구리다. ㅠㅠ

13-2. 터미널 상에서는 좀 치다가 탭키를 누르면 자동완성이 된다.

14. 잘라내기
한 줄 잘라내기 : dd

15. 삭제
한 글자씩 삭제(마치 Delete 키처럼 동작) : x
한 단어 삭제 : dw (유용~)
커서부터 그 줄 끝글자까지 삭제 : shift + d (유용~)

16. 저장하고 나가기
:wq 또는 ZZ

17. vim 상에서 man 바로 보기
메뉴얼을 보고싶은 키워드 (ex : strncpy)를 입력한다.
ESC를 누르면 그 문자로 커서가 이동한다.
이때 K(대문자임!)누르면 바로 man strncpy가 열린다.


18. 각종 유용한 이동키

- 기본적인 것
j (다음줄), k (이전줄)

- 단어 단위 이동 
다음 단어로 이동 : e 또는 w (e는 담단어 뒷글자로 이동하고, w는 담단어 첫글자로 이동한다.)
이전 단어로 이동 :  b 또는 ge ( b는 이전단어 첫글자로 이동하고, ge는 이전단어 마지막 글자로 이동한다.)

- 문장 단위 이동
문장 맨 첫글자 앞으로 가기 : ^ (0 도 자주 쓴다)
문장 맨 뒷글자의 뒤로 가기 : $

- 반 페이지 단위 이동
반 절 이전 넘기기 : ctrl + u
반 절 다음 넘기기 : ctrl + d

- 한 페이지 단위 이동
ctrl + b (이전)
ctrl + f (다음)

19. Replace 모드
command 모드에서 R

20. 되돌리기 / 다시하기

방금 한 작업 취소하기 : u
u로 취소한 걸 무효화시키기 : ctrl + r

21. 여러 파일 열어서 옮겨 다니기
터미널에서 
$vi 파일1.c 파일2.c 
등으로 여러개를 연 다음, 

:n (다음파일)
:N (이전파일)

이렇게 옮겨다닐 수 있다.

21. 스크립트 류 여러줄 주석처리 한번에 하기
스크립트 언어 작성 시 범위주석이 안된다. # 로 한줄한줄 다 넣어줘야 하기 때문에 귀찮은데, 
ctrl + v -> 방향키로 처리할만큼 블록지정 -> shitf + i -> # -> esc 누른 후 대기
하면 한번에 범위 주석이 된다.

21-2. 반대로 스크립트의 여러줄 주석을 한번에 해제하려면, 
ctrl + v -> 방향키로 처리할만큼 블록지정 -> x 를 눌러 여러 줄의 앞글자를 삭제.
하면 되겠다. 

22. 수를 +1로 변환 : 숫자에 대고  ctrl + A 
23. 수를 -1로 변환 : 숫자에 대고 ctrl + X

---------------문자열 들어간 파일찾기-------------
명령어 : grep -r "찾을 문자열" ./*

     ex : grep -r "aaa" ./*

728x90