vim key 단축키 간략히..
VIM
hjkl 방향키
,wb 단어간 이동
WB 공백간 이동
e,ge는 단어 끝간 이동
E,gE
문장간 이동
0: 행의 맨 앞으로 이동, (숫자0임)
$: 행의 맨 뒤로 이동
^: 같은 줄, 첫번째 글자
글자 검색하기(f,t ;는 next , 는 뒤로)
f: f는 뒤의 키를 기다리므로, 같은 행에서 원하는 글자를 누르면, 그 글자로 간다. (하지만 주의사항이 뒤의 문자만 찾는다는 것. 그래서F 키로 그 전의 원하는 문자를 찾는다.)그리고, L옆의 ;를 누른다면, 앞의 명령어를 기억하기 때문에, 원했던 글자로 다시 가게 된다.
t: t 하고 내가 찾고 싶은 문자(단어가 아님!) 입력 시에, 찾고 싶은 문자 전 칸으로 커서를 띄운다.
여기서 ,를 누르면 역방향으로 전에 찾던 글자가 찾아진다.
만약, 대문자 F,T 를 입력할 위의 소문자와는 반대방향으로 찾아 짐을 볼 수 있다.
단어 검색하기 (/ n는 다음 차례, N은 역방향 )
/ (오른 shift 아래) 클릭 후 찾는 단어 검색
여러 단어로 넘나들고 싶다면, n을 누르면 다음 단어로 넘어간다. 대문자 N은 역방향으로 넘나든다.
그리고 함수 명을 위와 같이 검색한 후에, 이와 같은 함수를 사용한 다음 경우를 검색하고 싶으면, * 를 누르면 바로 넘어가게 된다.
마우스 휠 처럼 화면 이동하기
Ctrl e 내려가기
Ctrl y 올라가기
Ctrl u 반페이지씩 올라가기
Ctrl d 반페이지씩 내려가기.
,gg: 첫 행으로 이동.
G: 마지막 행으로 이동
특정행으로 이동 시에는 :10(10행으로 이동함. )
전체 복사하고 싶으면 ctrl a 가 안됨으로 , gg(첫행) v G 하면 된다 . 근데 여기서 마지막 행 전체 복사는 안된.,.. 그래서 , $를 한번 더 해줬다.
일반모드, 입력모드(a,i,o,r,s), 명령모드,
입력모드에서 다시 일반모드로 (원래는 esc , ctrl o, 로 설정되는 것 같은데, ctrl o같은 경우에는 안된다. 따라서 jj로 외우자!!)
문자를 입력(a, i, o, r 대문자도 가능)
i는 그냥 insert의 약자, 입력 모드 전환 키이다. I는 행의 맨 앞으로 옮겨서 입력하게 해줌.
o는 그 행 아래로 해서 입력모드로, O 행 위로 해서 입력이 가능하게 해준다.
r은 replace여서 다른 문자로 변경할 때. 입력모드로 가지 않고 바로 일반모드로
a는 원하는 칸 뒤에 커서를 옮기는 역할을 함. (add 로 생각해서 뒤에 입력이 된다고 생각하면 되겠다.)
Ctrl h는 backspace대신에 지울 수 있다. 익숙해 지면 이게 더 편하다고 하는 데.vscode vim에서는 활용되지 않음.
삭제, 복사, 붙여넣기.,
Normal 모드에서 삭제 :
x: 행의 맨 마지막에서는 자신의 바로 앞의 문자를 지운다. 하지만 문장 중간에서는, x는 delete 역할, X는 backspace 역할을 한다.
dd: 그 행을 지운다.
D: 현재 위치부터 그 행의 끝까지 지운다.
Vim 에서의 삭제는 항상 저장소에 저장이 되어 있다고 생각하면 된다. 따라서 p는 붙여넣기인데, 붙여넣기를 하면, 전에 삭제 되었던 게 붙여넣기가 됨. P는 위에 다가, p는 아래 다가.
그냥 복사는 yy이고, Y는 한 줄이 복사되는 것.
여기서 비주얼모드로 yy 를 하면은 두줄이 복사되는 것 같다...
작업 취소하고, 다시 실행, 이전명령 반복하기. (vim의 가장 큰 장점이다.!!)
Redo u는 취소, ctrl r이 다시 실행. à 이전명령 반복 문서를 열고 지금까지 한 것 취소하고, 다시 실행 가능. (마소 word같은 경우에는 한계가 있지만,vim같은 경우에는 전무 다 저장하기 때문)
그리고 . 의 역할은, 이전 명령을 실행한다 만약 i=0을 썼다면, i=0 쓰는 것을 반복가능!!
만약 지우기했다면, 지우는 동작을 그대로 다시 실행하는 것이다.
비주얼모드
소문자 v ->x는 삭제, y는 붙여넣기
대문자 v는 행단위이다.
비주얼블록모드
Ctrl v는 특이하게, 사각형 모드로 열단위 지정이 가능하다
gg V G
viw :는 한 단어를 선택하는 것인데, 만약에 vi( 를 선택한다면, 소괄호 안의 것이, vi” 하면 “ 안의 것들이.
페이지간 이동
Crtl hjkl 로 터미널로의 이동과 위로의 이동가능.
Setting JSON파일과
Setting kebinding 둘다 변경으로 가능.
터미널 이동
{ "key": "ctrl+'", "command": "workbench.action.terminal.focusNext" },
{ "key": "cmd+shift+k", "command": "workbench.action.terminal.focusPrevious" },
{ "key": "ctrl+shift+'","command": "workbench.action.terminal.new"}
// 위는 이미 setting.json에는 적용이 되어 있기 때문에, keybinding만 조절해주면 된다.
Ctrl j를 하면, terminal 내에서 누를 에 창이 사라지고, 페이지 내에서 누를 시에는terminal 창으로의 이동이 된다.