vim 단축키 만들기


vim에는 정말 다양한 기능과 굉장히 많은 명령어가 있다. 하지만 이 많은 기능과 명령어를 모두 사용할 줄 알아야 하는 것은 아니다. 오히려 이러한 다양한 명령과 기능들을 둘러보고 나서 자신에게 필요한 것만 최적화 하는 것이 바람직하다. 특히, 자주 쓰는 명령어나 기능들을 간단한 키로 실행할 수 있도록 만들어 놓으면 작업이 대단히 수월해질 것이다. 이 때 자주 쓰는 명령어나 기능들을 간단한 키로 만들어주는 것이 키 매핑(mapping)이다. , 사용자 지정 단축키인 셈이다.

 

우선 어떤 키 매핑들이 사용되고 있는지 확인해보자


명령 라인에 :map 사용 중인 키 매핑 리스트를 화면에 표시한다.


실행해 보면 굉장히 많은 키 매핑이 사용중인 것을 볼 수 있을 것이다. 이미 지정된 키 매핑을 사용하는 것은 나중 문제로 하고 일단, 우리가 원하는 키 매팽을 해보는게 좋을 것 같다. 


위에서 사용한 명령라인에 :map 명령어 뒤에 [단축한 키][단축될 명령어]를 다음과 같이 배치하면 [단축될 명령어][단축한 키]매핑(mapping) 시킨다.


명령 라인에 :map [단축한 키] [단축될 명령어]


[단축될 명령어][단축한 키]매핑(mapping)


가령, 다음과 같다.


명령 라인에 :map <F2> :tabnew<CR>


기능키인 <F2> 키에 :tabnew<CR>매핑(mapping) 

명령 모드에서 기능키 <F2>를 누르면 :tabnew 명령어가 실행되어 새로운 탭이 열리면서 이름 없는 빈 파일이 표시됨


※ <CR>vim 내에서 [Enter]키를 입력했음을 의미한다. 만일, 위의 사례에서 <CR>을 집어넣지 않은 채로 매핑을 하면 <F2>키를 눌렀을 때 명령 라인에 :tabnew 명령어가 나타나지만 [Enter]명령어가 입력되지 않으므로 아무 일도 일어나지 않는다.



.vimrc 에 설정한 키 매핑 기록하기


지금 열심히 키 매핑으로 원하는 단축키를 만들어놨어도 vim을 끄고 다시 켜면 처음부터 다시 설정을 해줘야 한다. 단축키는 앞으로도 지속적으로 사용할 것이므로 vim의 설정 파일인 .vimrc에 설정한 키 매핑을 기록하여 매번 vim을 실행할 때마다 다시 설정하지 않도록 조치할 필요가 있다. 


우리는 앞서 vim의 설정 파일인 .vimrc에 대해서 간단하게 둘러본 바가 있으니 이를 참조하기 바란다.


~/.vimrc 파일을 열어 다음 내용을 가장 마지막 행에 추가한다


map <F2> :tabnew<CR>

.vimrc에 기록할 때는 명령 라인에 명령어를 입력할 때 앞에 붙는 콜론(:)을 쓰지 않는 점에 주의


이제 vim을 닫고 다시 열어서 명령 라인에 :map 을 입력하여 사용중인 키 매핑 리스트를 확인하면 아래과 같이 등록된 것을 확인할 수 있다.



Anki 파일


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


061 단축키 만들기-키 매핑(mapping).apkg


vim에서 글자 삭제하기


vim에서 글자를 삭제하는 것은 쉽다. 다른 텍스트 에디터와 마찬가지로 [Delete] 키나 [Backspace] 키를 누르면 된다. 하지만 항상 그렇듯이 vim에서는 효율적으로 다양한 삭제 작업을 수행할 수 있는 단축키를 갖고 있다.  이를 확인해보자. 


가장, 기본적인 키는 x 로 현재 커서가 위치한 글자를 지운다. 우리가 흔히 사용하는 [Delete]와 비슷한 작용을 한다.


x 커서가 아래에 있는 한 글자를 삭제

name age phone etc x

      ↓

name ge phone etc


소문자 x키를 제외하면 삭제와 관련된 대부분의 키는 소문자 d키와 관련이 있다. 


dw → 현재 커서 위치에서 부터 다음 단어의 첫글자 바로 앞까지 삭제

name age phone etc  dw

      ↓

name aphone etc 

 다음 단어의 첫 글자 바로 전까지 삭제되고 커서는 다음 단어의 첫 글자에 위치하게됨


dd → 커서가 놓여 있는 행 전체를 삭제하고 다음 행이 현재 행으로 끌어올려진다.

아래와 같이 커서가 위치해 있는 상황에서 명령 모드에서 dd 키를 누르면 

1 name age phone etc 

2 name age phone etc

         ↓

2 name age phone etc

 원래 커서가 있던 1행이 지워지고 2행이 위로 끌어올려진다. 그리고 커서는 그 행의 장 첫 글자에 위치한다.


※ 커서 아래에 행이 더이상 없다면 커서가 위치한 행이 지워지고 커서는 이전행으로 올라가 가장 첫 글자에 위치한다.

name age phone etc

2 name age phone etc

         ↓

1 name age phone etc


명령 모드에서 x, dw, dd 키는 앞에 숫자를 붙일 경우 해당 숫자 만큼 명령을 반복한다.


8x 현재 커서 위치에서 8글자가 삭제

5dw 현재 커서 위치에서 5단어가 삭제

7dd 현재 커서 위치에서 7이 삭제


이제 d 키와 다른 키를 조합해서 사용할 수 있다. 


d^ → 캐럿(^)은 행의 첫 글자로 이동하는 키이므로 커서 위치에서부터 그 행의 첫 글자까지 삭제

d$ 달러($)는 행의 마지막 칸으로 이동하는 키이므로 커서 위치에서부터 그 행의 마지막까지 삭제

dk k는 커서를 위로 1행 움직이는 키이므로 커서가 있는 행과 그 위의 행을 전부 삭제

dj j는 커서를 아래로 1행 움직이는 키이므로 커서가 있는 행과 그 아래의 행을 전부 삭제


그 외의 기타는 다음과 같다.


D → d$와 동일하게 커서 위치에서부터 그 행의 마지막까지 삭제

d0 → 커서 위치부터 행의 처음까지 삭제

d^은 행의 첫 글자까지 삭제이므로 첫 글자 앞에 공백이 있을 경우 공백을 지우지 않는다. 하지만 d0의 경우 행의 처음까지 삭제이므로 공백이 있을 경우 공백까지 깔끔하게 삭제한다. 



Anki 파일


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



vim의 커서 이동 키


일반적인 텍스트 에디터와 마찬가지로 vim에서도 화살표 키를 눌러 커서를 이동할 수 있다. 그렇지만 vim은 명령 모드에서는 h, j, k, l 키들을 화살표 키처럼 사용할 수 있다


소문자 k =

소문자 h =

소문자 l =

소문자 j =


hjkl 과 화살표를 단순하게 매칭하면 낯설기 때문에 이 키들을 아래처럼 시계방향으로 그려보면 조금 편하게 익숙해진다.


      k()

()h          l()

       j()


화살표 키는 명령 모드와 편집 모드에서 전부 사용할 수는 있지만 hjkl은 명령 모드에서만 사용된다. 그럼, 화살표 키를 쓰는 것이 편하고 더 낫지 않을까?

 

아쉽지만, vim을 공부하다 보면 hjkl과 결합된 단축키가 많이 등장한다. 또, vim에서는 대부분의 명령어 앞에 숫자를 붙여서 동일한 명령을 수회 반복할 수 있는데 이렇게 숫자를 결합해서 쓸 경우에도 hjkl 이 더 유리하다. 마지막으로, hjkl 에 익숙해지면 손이 키보드의 중심에서 벗어나지 않아 빠르고 효율적이 되기 대문에 결국 hjkl에 익숙해지는 것이 좋다.

 

다음의 명령어에서 [n]은 숫자를 의미하며 명령 모드에서 10k, 5l, 3j, 8h 와 같이 키를 누르면 된다.


[n]k 위로 n, 숫자 생략할 경우 1행 이동

[n]l 오른쪽으로 n, 숫자 생략할 경우 1칸 이동

[n]j 아래쪽으로 n, 숫자 생략할 경우 1행 이동

[n]h 왼쪽으로 n, 숫자 생략할 경우 1칸 이동


※ 앞으로 [ ] 대괄호로 감싼 부분은 생략 가능한 옵션을 표시할 때 사용한다. 



Anki 파일


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



vim 모드 전환


앞에서 vim의 모드에 대하여 간단한 포스팅을 올린 바 있다. 그 내용은 명령(command) 모드편집(insert) 모드가 있다는 것이다. 


대부분의 작업은 명령 모드에서 이루어진다. 편집 모드는 글자를 입력하는 역할만 하고, 편집, 수정, 삭제, 각종 명령 등 모두 명령 모드에서 이루어진다. 따라서 vim에서의 작업은 명령 모드와 편집 모드의 끊임없는 전환의 형태로 이루어지고 이것에 익숙해져야 한다. 



편집 모드 → 명령 모드


편집 모드에서 명령 모드로 전환하는 키는 Esc 키다. 그런데 Esc 키가 키보드에서 누르기 어려운 위치에 있으므로 이것을 대체하는 키가 있는데 그것이 바로 <Ctrl+[> 키다. (< >로 묶인 키는 동시에 누른다Ctrl 키를 누른 상태에서 [ 키를 누른다.)


편집 모드에서 Esc 키, <Ctrl+[> 키를 누르면 명령 모드로 전환



명령 모드 → 편집 모드


명령 모드에서 편집 모드로 전환할 때는 필요에 따라 사용할 수 있는 다양한 방식이 있다. 

아래의 사례들은 모두 명령 모드에서 누르는 단축키다. 커서의 위치에 주목해서 살펴보자.


i i(insert)는 현재 커서 위치에서 편집 모드로 전환한다.

I have a dream! i를 누른다.

I have a dream! → 커서의 위치는 바뀌지 않고 편집 모드로 변경


a a(append)는 현재 커서 위치 다음 칸에 첨가되고 편집 모드로 전환

I have a dream! a를 누른다. 

I have a dream! → 커서가 한칸 오른쪽으로 이동해서 편집 모드로 전환


A 현재 커서가 위치한 행의 끝에서 첨가되고, 편집 모드로 전환

I have a dream! A를 누른다.

I have a dream!  → 현재 행의 끝으로 이동해서 첨가


I I는 현재 행의 맨 앞으로 커서가 이동해서 편집 모드로 전환

I have a dream! I를 누른다.

I have a dream! → 현재 행의 맨 처음으로 이동해서 끼워넣기


s 커서가 위치한 글자를 지우고 편집모드로 전환

I have a dream! s를 누른다.

I have a drem→ 커서가 위치한 글자가 지워짐


o o(open line)는 커서가 있는 행 아래에 새로운 행을 만들어 커서를 위치시킨 후 편집 모드로 전환

 

아래의 상황에서 o 키를 누른다.

 

I have a dream!

I want to be an excellent programmer.

 

원래 커서가 있던 행의 아래에 새로운 행이 생기고 커서의 위치가 새로운 행의 처음으로 이동한다. 편집 모드로 전환된다.

 

I have a dream!

   

I want to be an excellent programmer.


O 커서가 있는 행 위에 새로운 행을 만들어 커서를 위치시킨 후 편집 모드로 전환

 

아래의 상황에서 O 키를 누른다.

 

I have a dream!

I want to be an excellent programmer.

 

원래 커서가 있던 행의 위에 새로운 행이 생기고 커서의 위치가 새로운 행의 처음으로 이동한다. 편집 모드로 전환된다.

 

I have a dream!

   

I want to be an excellent programmer.


cc 커서가 위치한 행이 지워지면서 편집 모드로 전환

다음과 같은 상황에서 cc를 누르면 그 행의 내용이 전부 지워지면서 편집모드로 전환

I have a dream!

I want to be an excellent programmer.

 

I have a dream!

                → 기존의 있던 내용이 전부 지워지고 커서가 처음으로 이동되면서 편집모드로 전환


r 명령 모드에서 한 글자만 바꿀 때 사용한다. 한 번 글자키를 눌러 변경하면 다시 명령 모드로 돌아와 입력이 되지 않는다.

 

want → 명령 모드에서 r을 누르고 c를 누르면

cant → 기존의 w자가 c자로 변함



R → 명령 모드에서 R키를 누르면 바꾸기 모드가 되면서 원래 있던 글자를 덮어 쓰면서 입력된다

 


Anki 파일


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



문서는 Anki 2.0 유저 매뉴얼을 번역한 문서입니다.


기본적으로 구글 번역을 통해서 초벌을 번역하고 이를 수정하는 방식으로 번역했습니다. 


또한, 본문에 충실한 직역보다는 매뉴얼을 숙지하기 쉽도록 의역 위주로 번역하였습니다.




Anki 매뉴얼 전체 개요 페이지 가기




Editing

 

 

 

 Features (편집기 기능)

 

 

Anki에서 편집기는 여러 곳에서 볼 수 있다.

 

우선 노트를 추가하는 창에 편집기가 붙어 있다.

 

 

 

 다음으로, 학습 중에 노트를 편집하는 현재카드 편집 창에서 볼 수 있다.

 

 

 

마지막으로는 탐색할 때 브라우저에서 편집기를 볼 수 있다.

 

 

 

이 모든 편집기는 왼쪽 상단에 필드와 카드를 여는 두개의 버튼이 있고

 

오른쪽 상단에는 서식을 제어하는 일련의 버튼을이 있다.

 

이 서식을 제어하는 일련의 버튼들을 자세히 살펴보자.

 

의 버튼들은 워드프로세서 프로그램처럼 글꼴을 굵게, 이탤릭 및 밑줄 등의 작업이 가능하다.

 

그 다음 두 개의  버튼을 사용하면 H2O 또는 x2와 같은 간단한 수학 방정식이나 화학 화합물에 사용하는 아래첨자 또는 윗첨자를 표현할 수 있다.

 

 버튼은 현재 선택된 텍스트에서 서식을 지운다. 물론, 색상, 굵게 표현 등도 전부 지운다.

 

그 다음 버튼은 텍스트의 색상을 변경할 수 있다.

 

 버튼은 컴퓨터 하드에서 오디오, 이미지 등의 미디어를 선택하여 노트에 첨부할 수 있게 해준다.

 

또는 미디어를 컴퓨터의 클립보드에 복사하고(예: 웹에서 이미지를 복사하여), 이를 원하는 필드에 붙여넣기 해서 미디어를 삽입할 수 있다.

 

미디어에 대한 자세한 내용은 미디어 섹션을 참조하면 된다.

 

 

 버튼은 컴퓨터의 마이크로 녹음하고 녹음한 내용을 노트에 첨부할 수 있다.

 

 버튼은 LaTex라는 뛰어난 수학용 마크업을 노트에 추가하거나 기본서식을 편집할 수 있게 해준다.

 

대부분의 버튼에는 단축키가 있다.

 

단추 위로 마우스 커서를 가져가면 단축키를 볼 수 있다.

 

LaTeX / HTML 메뉴의 경우, Ctrl+t, t, e 또는 m을 사용하여 3 개의 LaTeX 유형을 선택하고 Ctrl+Shift+x를 사용하여 HTML을 편집하면 된다.

 

 

 

 Anki 매뉴얼 전체 개요 페이지 가기



문서는 Anki 2.0 유저 매뉴얼을 번역한 문서입니다.


기본적으로 구글 번역을 통해서 초벌을 번역하고 이를 수정하는 방식으로 번역했습니다. 


또한, 본문에 충실한 직역보다는 매뉴얼을 숙지하기 쉽도록 의역 위주로 번역하였습니다.




Anki 매뉴얼 전체 개요 페이지 가기




Studying

 

 

 

 Keyboard Shortcuts(단축키)

 

 

Anki의 메뉴판에 있는 일반적인 조작은 대부분 키보드 단축키가 설정되어 있다.

 

대부분의 단축키는 인터페이스에서 찾아볼 수 있고, 메뉴 항목은 바로 옆에 단축키를 보여준다.

 

 

 

 

그리고 마우스 커서를 버튼 위로 가져가면 일반적으로 도구 설명에 단축키가 표시된다.

 

 

 

 

학습 중에 스페이스바를 누르거나 엔터키를 치면 답이 나타나고 다시 스페이스바를 누르거나 엔터키를 치면 알맞음(Good) 버튼이 눌러진다.

 

1에서 4까지의 숫자 버튼을 사용하는 것도 편하다.

 

보통 스페이스바를 누르고 답을 잊었을 때 1번을 누르기 위해서 숫자버튼 1에 손가락 하나를 올리는 것으로 보인다.

 

 

도구 메뉴의 "공부할 뭉치(Study Deck)"항목을 사용하면 키보드만 이용하여 빠르게 뭉치를 전환 할 수 있다. ‘/’ 키가 단축키이다.

 

 

 

해당 창이 열리면 모든 뭉치가 표시되고 상단에 여과 영역이 표시된다.

 

이 여과 영역에 글자를 타이핑하여 입력하면 Anki는 입력한 글자와 일치하는 카드뭉치만 표시한다.

 

공백을 추가하면 여러 검색어를 구분할 수 있으며 Anki는 모든 검색어와 일치하는 카드뭉치만 표시한다.

 

따라서 "ja 1"또는 "on1 ja"는 모두 "Japanese :: Lesson1"이라는 뭉치와 일치한다.


 

 

 

 

 

Anki 매뉴얼 전체 개요 페이지 가기



+ Recent posts