neovim

잊지 않기 위해서 적어둔다.

Text Objects

w  - words
s  - sentences
p  - paragraphs
t  - tags
iw - inner word
it - inner tag

Motions

a - all
i - in
t - `til
f - find forward
h        - 왼쪽으로 커서 이동
j        - 아래쪽으로 커서 이동
k        - 위쪽으로 커서 이동
l        - 오론쪽으로 커서 이동
w        - 단어 첫 글자로 이동
b        - 역방향으로 단어의 첫 글자로 이동
e        - 단어의 마지막 글자로 이동
ge       - 역방향으로 단어의 마지막 글자로 이동
0        - 라인의 제일 앞으로 이동
f[str]   - 라인에서 [str] 위치로 이동. ; 를 통해 다음 [str]로 이동
F[str]   - 라인에서 역방향으로 [str] 위치로 이동
t[str]   - 라인에서 [str]의 앞 위치로 이동
T[str]   - 라인에서 역방향으로 [str]의 앞 위치로 이동
CTRL + E - scroll the window down
CTRL + Y - scroll the window up
CTRL + F - scroll down one page
CTRL + B - scroll up one page
CTRL + D - scroll down half page
CTRL + U - scroll up half pag
H        - move cursor to the top of the window
M        - move cursor to the middle of the window
L        - move cursor to the bottom of the window
gg       - go to top of file
G        - go to end of file

Multi File Edit

:n move to next file
:prev, :N move to pre file
:ls
:bNumber
:bdNumber 현재 열린 vi 목록에서 해당 파일 제거
:bw 현재 편집 중인 파일 제거

Comands

d - delete (also cut)
c - change (delete, then place in insert mode)
y - yank (copy)
v - visually select
< - Shift {motion} lines one 'shiftwitdth' leftwards.(indent)
> - Shift {motion} lines one 'shiftwitdth' rightwards.(indent)
. - repeat last change

Additional commands

dd/yy - delete/yank the current line
D/C   - delete/change until end of line
^/$   - move to the beginning/end of line
I/A   - move to the beginning/end of line and insert
o/O   - insert new line above/below current line and insert

combine with commands

{command}{text object or motion}

diw
delete in workd
dts

caw
change all word
yi)
yank all text inside parentheses
va"
visually select all inside doublequotes

DOT command repeat the last command

화면분할

Window

Window는 Buffer를 출력하는 방법을 나타냅니다. 분할된 Window는 어떤 Buffer라도 출력 할 수 있습니다.

모든 Window 명령은 CTRL-W로 시작합니다. CTRL + W를 입력한 후 Window 명령을 입력하여 사용합니다.

:help CTRL-W

CTRL + W n  - 새로운 윈도우를 만듭니다.
CTRL + W s  - 윈도우를 가로로 분할 합니다.
  :sp
CTRL + W v  - 윈도우를 세로로 분할 합니다.
  :vs
CTRL + W ^  - 윈도우를 가로로 나누고 이전 파일을 열어 줍니다.
CTRL + W f  - 윈도우를 가로로 나누고 커서 위치의 파일을 열어 줍니다.
CTRL + W i  - 윈도우를 나누고 커서 위치의 단어가 정의된 파일을 열어 줍니다.
CTRL + W gf - 커서 위치의 파일명을 탭에 열어 줍니다.

CTRL + W h  - 현재 윈도우에서 왼쪽으로 이동 합니다.
CTRL + W l  - 현재 윈도우에서 오른쪽으로 이동 합니다.
CTRL + W j  - 현재 윈도우에서 아래로 이동 합니다.
CTRL + W k  - 현재 윈도우에서 위로 이동 합니다.
CTRL + W w  - 현재 윈도우에서 다음 윈도우로 이동 합니다.

CTRL + W -  - 현재 윈도우 크기를 줄입니다.
CTRL + W +  - 현재 윈도우 크기를 늘립니다.
CTRL + W =  - 윈도우 크기를 동일하게 조절합니다.

CTRL + W q  - 현재 커서의 윈도우를 종료합니다.
  :q
CTRL + W c  - 현재 커서의 윈도우를 종료합니다.
  :close
CTRL + W o  - 현재 커서의 윈도우를 제외하고 나머지 윈도우를 모두 종료합니다.
  :on[ly]

Buffers

Buffer는 파일 내용이 메모리 상태에 있거나 새로 편집 중인 문서를 의미 합니다.

  • Buffer 목록에서 표시되는 기호들은 다음을 나타냅니다.
    • % - 현재 편집 중인 버퍼
    • # - 바로 이전에 열렸던 버퍼
    • a - 현재 화면에 보이는 활성화된 버퍼
    • + - 변경된 내용이 있는 버퍼
:ls        - 현재 Buffer 목록을 보여 줍니다.
  :files
  :buffers
:b[N] - N 번째 버퍼를 이동 합니다.
:bn        - 다음 버퍼로 이동 합니다.
:bp        - 이전 버퍼로 이동 합니다.
:bd        - 버퍼를 제거 합니다.
:0f        - 현재 버퍼를 목록에서 제거 합니다.
             연결된 파일이 있다면 해제하여 [No Name] 버퍼로 만듭니다.

모드

VI는 3가지 일반(Normal), 입력(Insert), 명령(Command or Colon) 모드를 가지고 있다.

Command Mode

:(colon)을 입력하여 명령어를 입력한다.

:w             - 파일 저장
:w [filename]  - 지정한 파일 이름으로 저장
:pwd           - 현재 디렉토리 경로를 보여준다.
:q             - 종료

Normal Mode

명령 또는 입력 모드에서 <Esc> 키를 통해 선택이 가능하다.

p        - 붙이기
u        - 명령어 취소(undo)
CTRL + r - 취소한 명령어 다시 실행 하기*(redo)
v        - 범위 지정
x        - 현재 커서의 글자 삭제
J        - 아래 라인을 위로 합치기

Insert Mode

기본적으로 i 키를 통해 선택 가능하나 여러 키를 통해서도 선택이 가능하다.

a   - 현재 커서 위치에서 한 칸 뒤로 이동한 후 입력 모드로 변경된다.
A   - 현재 라인의 제일 끝으로 이동 후 입력 모드로 변경된다.
i   - 현재 커서 위치에서 입력 모드로 변경된다.
I   - 현재 라인의 제일 앞으로 이동 후 입력 모드로 변경된다.
o   - 현재 라인 아래에 새 라인을 만든 후 입력 모드로 변경된다.
O   - 현재 라인 위에 새 라인을 만든 후 입력 모드로 변경된다.
R   - 수정 모드로 작동하여 입력하는 모든 글자가 덮어 써진다.

강제로 명령어를 실행 할 수 있는 !

기타

#        - 현재 커서 위치 단어 검색(backword)
*        - 현재 커서 위치 단어 검색(forward)
?        - 검색(backword)
/        - 검색(forward)
.       - 마지막 변경을 반복한다.(이전 명령어 반복실행)
gf      - 커서 위치의 파일명을 열어 줍니다.

marks ma `a

참고링크