vi / vim 단축키 시트 번역합니다. 도와주세요.

[url=http://ubuntu.or.kr/viewtopic.php?f=22&t=3240:3v9hwfrb]vi 버전 문의좀요[/url:3v9hwfrb] 글타래에 [b:3v9hwfrb][url=http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html:3v9hwfrb]아주 좋은 링크[/url:3v9hwfrb][/b:3v9hwfrb]가 있더군요.
근래에 vi 가 쓸 일이 있어서 조금씩 살펴보고 있는데…

그래서 번역을 해보기로 했습니다.
그런데 제가 vi 를 모르다보니 이게 뭔 소린지 전혀 모르겠네요.
그래서 도움을 요청합니다. 우선은 전체 단축키 시트부터 ㅎㅎ

원본을 보시고 자신이 아는 단축키에 대해 주욱 설명을 해주세요. 아니면 좋은 번역어를 추천해주시던가 ;;;
저도 열심히 매뉴얼 봐가면서 좋은 번역어를 생각해보겠습니다. :)

일단 대강 하다말은 것을 올려봅니다.
SVG 로 작업하여 PNG 로 export 했습니다.

http://wiki.kldp.org/wiki.php/VimTutorKo

[quote="origin25":9ah9b8rc]http://wiki.kldp.org/wiki.php/VimTutorKo

위주소를 보시면 사용자 가이드가 한글로 번역되어 있습니다.[/quote:9ah9b8rc]
해당 링크에도 설명이 있긴 하지만 터미널에서 vimtutor 하면 저 내용이 나오죠 :)

이런게 있군요 =.=
vi의 안쓰는 단축키들이 많은데 이거보고 좀 익혀봐야겠군요… ㅎㅎ

흐… 좋은 일 하시는 군요.

도와드리고 싶은데 요새 완전 똥줄타는 일이 있어서.;;

암튼 잠깐 보니까…

eol은 end of line의 약어겠네요.

일례로, $는 라인의 끝으로 커서를 이동시킵니다.

표에 있는 모든 eol은 end of line으로 해석하시면 될 듯.;

그럼 이만.;

번역이라, 멋진 결정을 하셨네요 :)

어줍잖은 실력으로나마, 이렇게 도와 드립니다 :)

// 밑에 용어가 적혀 있길래…
EOL - End of line, 라인의 끝
bol - Beginning of line, 라인의 시작
mk - mark, 마크
yank - copy, 복사

word - quux(foo,에서 quux ( foo , 가 한 문장
WORD - quux(foo, 전체가 한 문단

// 여기는 영어 부분 해석
연산자 - 이동 관련 문자(숫자나 커서이동 등)와 함께 사용하여야 하며, 커서의 위치에서 부터 목적지(자신이 입력한 이동관련 문자)까지 연산 합니다.

확장?(Extra) - 특별한 키 함수로, 추가적인 키 입력이 필요합니다.

q - 입력후 글자(.으로 끝날수 있는, 숫자를 제외한)를 입력하여야 합니다.

// 노트 부분
(1) x 레지스트에 복사 / 붙여넣기 / 지우기 명령의 결과를 저장할때 사용합니다.(x 레지스트 = a…z, *)
예시) "ay$ 를 하게 되면 a 레지스트에 한줄이 복사되어 집니다.

(2) 어떤 명령을 입력하기 전에 횟수를 지정하면, 횟수만큼 반복하게 됩니다.
예시) 2p, d2w, 5i, d4j

(3) 연속으로 입력하는 명령은 현재의 라인에 반영됩니다.
예시) dd(현재 라인 지우기), >>(들여쓰기)

(4) ZZ 는 저장후 종료를 하고, ZQ는 저장하지 않고 끝냅니다.

(5) zt : 커서가 위치한 곳을 제일위로 올리기, zb : 바닥으로, zz : 가운데로

(6) gg : 파일의 처음으로(Vim 전용), gf : 커서가 위치한 곳의 파일 열기(Vim 전용)

// 이 아래는 제가 아는 명령어와 그림에서 보여지는 명령어에 대해 아는대로 적어봤습니다~
$ 는 해당 줄의 끝으로 이동 합니다.

  • prev line 은 설명 그대로 이전 줄로 가구요~
    = 는 자동 포멧(혹은 문법에 맞게 자동 정렬) 기능을 합니다.(소스 코드 짤때, 들여쓰기 안하고 해도 전체 선택호 = 누르면 자동 정렬 되는 식?)

w 는 다음 '단어’를 찾고,
W 는 큰 단어의 시작점을 찾습니다~
e는 다음 단어의 끝,
E는 큰 다음 단어의 끝으로 갑니다.
b는 이전 단어,
B는 큰 이전 단어의 시작 부분,
'큰 단어’는 단어 이외의 쉼표나 # 같은 기호도 단어로 취급해서 검색합니다.

r 는 일종의 수정 모드로, 커서가 위치한 곳의 1 단어를 바꿀수 있습니다.(1단어 교체후 원상 복귀 됩니다.)
R 은 수정 모드로 들어가서 수정할 수 있습니다.

y는 복사하기, Y는 한줄 복사 입니다. 간단히 yy 를 눌러도 한줄 복사 되구요~

G는 파일의 끝으로 갑니다. 만약 행 번호 후에 G를 누르면 해당 행 번호로 갑니다.
g는 Vim에서 쓰이는 몇가 확장 기능용 입니다. gg를 누르면 파일의 처음으로 가고, gf를 누르면 현재 커서가 있는 위치의 파일을 엽니다.(가령, test.txt 라는 글자 위에 커서가 있으면 gf를 눌러서 바로 test.txt 파일을 열 수 있습니다.)
^g(Ctrl + g)는 현재 행의 정보를 보여 줍니다.

i는 현재 커서의 앞에 삽입을 하구요~
a는 현재 커서의 뒤에 삽입을 합니다.
I는 행의 시작에다 삽입하고~
A는 현재 커서의 제일 뒤에 삽입을 합니다.
o는 행의 위에,
O는 행의 아래에 행을 생성하고 삽입합니다.

c는 행 을 교체 하는 명령어로, 이동 명령과 조합해서 사용 합니다.
C는 현 커서로 부터 제일 끝 까지의 한 행을 싹 고치고, cc는 아예 행 전체를 고칩니다.(문장을 삭제하고 삽입 모드로 들어갑니다.)

hjkl 은 각 방향키를 나타내고,
H는 현재 화면상에 보이는 곳에서 부터 제일 처음위치로 커서를 옮깁니다.
J는 현재 커서의 바로 아래에 있는 녀석을 자신의 뒤로 합칩니다.
K는 현재 커서가 위치한 명령어의 도움말을 호출하며,
L은 H와 반대로 현재 화면상에 보이는 곳에서의 가장 아랫부분으로 커서를 옮깁니다.

p는 현재 커서의 뒷 부분에 붙여넣기를 하며,
P는 현재 커서의 앞 부분에 붙여넣기를 합니다.

{, }는 (, )과 비슷하지만 '문단’으로 검색 합니다.

x는 현재 커서의 위치한 곳의 글자를 지우고,
X는 Backspace와 같은 기능을 합니다.

v는 비주얼 모드로, 블록 설정을 할 수 있게 하며,
V는 줄 단위 비주얼 모드로 갑니다.

^ 는 현재 행의 첫 글자로 이동하고,
0 는 현재 행의 처음으로 이동 합니다.

: 는 ex모드로 진입하고,
; 는 t, T, f, F 명령수행시 반복 합니다.

f는 1문자 찾기로, f후 찾는 문자 입력하면 현재 행에서 해당 문자를 찾습니다.
F는 역방향으로 찾고,

t는 f와 같지만, 찾은 문자의 앞부분으로 커서가 이동 합니다.
T는 역 방향.

^B(Ctrl + B)는 이전 페이지,
^F(Ctrl + F)는 다음 페이지고,

/ 는 검색, ?는 역 순으로 검색 입니다.
검색 중에 n을 누르면 다음, N을 누르면 이전 입니다.

u는 현재 실행한 내용 취소,
U는 현재 행에 대한 실행 내용을 모두 취소 합니다.

> 는 들여쓰기, < 는 내여쓰기(들여쓰기의 반댓말이 이게 맞던가요;?) 입니다.

. 은 마지막으로 실행한 내용을 반복하며,

m은 현재 위치 마크(m 누른후 문자)하고, ’ 는 마크된 위치로 이동 합니다.
M은 커서를 화면의 중간 부분에 위치 시킵니다.

!는 외부 명령어를 실행 할 수 있고(!ls를 누르면 ls 명령이 실행되는 식)
q 는 매크로를 기록 합니다.(누른후 문자)
@ 로 매크로를 실행 합니다.

EX 모드나 기타 부분에 대해서는 모두 뺐습니다~ 저도 그 부분은 아직 초보 수준이기도 하구요 :)

아, 도움 될까하고 IBM Vi 관련 링크 추가합니다~

http://www.ibm.com/developerworks/kr/li ... &S_CMP=EDU

[quote="exex2":xh2hzto9] 어줍잖은 실력으로나마, 이렇게 도와 드립니다 :)[/quote:xh2hzto9]
와우!! 멋집니다.
귀찮아서 -_-; 그냥 때려칠까 했는데, 그러지 못하게 만드셨군요. ㅎㅎㅎ

exex2 님이 번역해 주신 부분들을 반영했고, 제가 이해하지 못하거나 애매한 부분은 남겨두었습니다.
자, 채워주세요~
특히 words, WORDS 에 대한 기능은 번역하기가 상당히 까다롭네요.

관리자의 실수로 글이 수정되었습니다.
재성님 진심으로 사과의 말씀을 드립니다.

관리자의 실수로 글이 수정되었습니다.
재성님 진심으로 사과의 말씀을 드립니다.

남은게

~ toggle case : 대소문자 전환
% goto match : 검색한 결과 위치로 이동하는 것 같은데 맞나요?
& repeat :s : ???
_ "soft" bol down : 다음 줄의 첫 단어인가요? 그냥 guess
W next WORD : 다음 WORD
E end WORD : 끝 WORD
T back 'till : 감이 안 옵니다.
t 'tll : 역시
[
]
S subst line
s subst char
D delete to eol : 줄끝까지 삭제?
d delete : 삭제
" reg. spec
’ goto mk. bol : 마크된 지점의 줄 처음으로 이동?
| bol/goto col
\ not used : 라는군요
B prev WORD : 이전 WORD
, reverse t/T/f/F : t/T/f/F 명령을 역순으로 실행인가요, 아니면 실행해서 찾은 결과값을 역순으로 검색?

동작에서 moves the cursor, or defines the range for an operator
커서를 이동하거나 연산자가 있는 영역을 결정, or 지정한다?

명령에서 direct action command, if red, it enters insert mode
직접 동작하는 명령인거 같긴 한데… 빨간색은 삽입 모드

비주얼 모드에서 Move around and type operator to act on selected region(vim only)

이상이네요.

[quote:3e9mblgb]특히 words, WORDS 에 대한 기능은 번역하기가 상당히 까다롭네요.[/quote:3e9mblgb]

확실히, 좀 난감하네요 :(… IBM 문서에 ‘큰 문자’ 와 '작은 문자’라고 표기되어 있어서 따라 쓰긴 했지만…

영어로 적힌 부분에 대해 추가 해 봅니다 :)

[size=110:3e9mblgb]

[code:3e9mblgb]
% - 괄호의 짝을 찾아 줍니다~ 열린 소괄호( 면 닫힌 소괄호) 가 있는 곳으로 커서가 가고, 열린 중괄호{ 면 닫힌 중괄호} 가 있는 곳으로 커서를 옮깁니다~
& - EX 모드에서 s 로 사용하는... 그 변환하는 것을 반복 합니다~ :s/찾을문자열/바꿀문자열/범위 <- 이녀석요~
t / T - f와 기능상의 차이는 거의 없습니다. 하나 있다면, 찾은 문자의 앞에 커서를 가져 갑니다 :slight_smile: 한 문자 앞 검색???
d - Del 기능 입니다~ 횟수나 모션 명령과 함께 사용되어져야 합니다 :slight_smile: (예로, d3w 하면 3단어를 지웁니다.)
D - 커서가 위치한 곳 부터 끝 까지 지웁니다.
s - x와 비슷하지만, 횟수를 정할 수 있고, 삽입 모드로 바로 들어갑니다. 그리고 중요한건 삭제된 내용은 x 레지스터에 들어가 집니다.( "xp 등의 명령으로 붙여넣을수 있습니다~ )
S - 아예 한줄을 x 레지스터에 옮기고 삽입 모드로 들어갑니다. 역시 삭제된 줄은 x 레지스터에 있습니다.
, - t / T 의 검색을 역순으로 검색 합니다.
[/code:3e9mblgb][/size:3e9mblgb]

저도 얼마전 부터 vi 에 재미가 들려서, 도움이 되어 드리고 있었습니다 :)

남은 번역도 힘내시길… :)

[quote="admin":2cdumsic]관리자의 실수로 글이 수정되었습니다.
재성님 진심으로 사과의 말씀을 드립니다.[/quote:2cdumsic]
헙… 제가 뭐 잘못한건가요??? ㅠㅠ

근데 무슨 내용이었었는지 기억이 안 나는;;; words랑 WORDS 얘기였던 것 같은데;;; :cry:

오랜만에 vim책을 봤는데

fold기능과 단어완성 기능이 보이는군요
^.^

:set foldmethod=syntax
CTRL X+F

조금 감동입니다 ^.^

마지막 올라온 이미지를 보고 쓴거라 겹치는게 있네요^.^

[code:2fts631y]
~ 대소문자 변경
`x x표시된 문자로 이동
% 맞는 괄호 열기 닫기로 이동
& 치환후 같은 작업 반복
_ 아래 줄로 이동
W 띄어쓰기로 다음단어(커서 단어 시작)
E 띄어쓰기로 다음단어(커서 단어 끝)
t 현재줄 검색 앞으로(커서위치 타겟)
T 현재줄 검색 뒤로(커서위치 타겟)
[[ 섹션(장?)의 시작
]] 섹션(장?)의 끝
s 한 글자 지우고 편집모드
S 한 줄 지우고 편집모드
d 지우기(조합)
g 확장 ga 아스키값, g CTRL+H 열중심 선택모드
D 현재위치에서 그줄의 마지막까지 지우기
f 현재줄 검색 앞으로(커서위치 타겟앞)
F 현재줄 검색 뒤로(커서위치 타겟앞)
; 한줄찾기(t/T/f/F) 반복
'x x표시된 줄로
" 버퍼(레지스터) 지정
| 열이동
, 한줄찾기(t/T/f/F) 반복(반대방향)
z 확장기능, fold기능 사용하기 zA zC 등등
[/code:2fts631y]

힘빼는 소리라 조금 쓰기 겁나는데요.

"$ vimtutor ko"를 치면 한글로된 내용이 나옵니다. vimtutor의 한글 버전이구요.

[quote:88mc4xj3]
w - until the start of the next word, EXCLUDING its first character.
e - to the end of the current word, INCLUDING the last character.

w - 커서에서 그 단어의 끝까지 (공백 포함.)
e - 커서에서 그 단어의 끝까지 (공백을 포함하지 않음.)

[/quote:88mc4xj3]

다만 W와 w 에대한 구분 설명은 없네요. 어쨌거나

word : 단어의 구분자로 공백과 더블어 특수기호들까지도 포함합니다.(ex : "", (), - ‘’…)
WORD : 단어의 구분자로 공백문자만을 사용합니다. 즉 붙어있는 문자를 모두 한단어로 인식한다는 뜻.

도움이 되시길.

이제 세 문장만 남았습니다. 어떻게 번역해야 좋을까요?

동작에서 moves the cursor, or defines the range for an operator
커서를 이동하거나 연산자가 있는 영역을 결정, or 지정한다?

명령에서 direct action command, if red, it enters insert mode
직접 동작하는 명령인거 같긴 한데… 빨간색은 삽입 모드

비주얼 모드에서 Move around and type operator to act on selected region(vim only)

허접하지만 제가 생각하는 걸 적어보았습니다.

moves the cursor, or defines the range for an operator
커서를 이동하거나, 연산자가 동작할 범위를 지정합니다.

direct action command, if red, it enters insert mode
바로 동작하는 명령, 빨간색으로 표시된 것은 편집 모드로 변경됩니다.

Move around and type operator to act on selected region(vim only)
커서를 움직여 지정한 범위에 연산자를 작용합니다. (vim 전용)

insert mode는 삽입 모드보단 편집 모드가 더 와닿지 않을까 하는 생각이 드네요. 아니면 입력 모드도 괜찮을 것 같고요.
= (자동 서식)은 원문에는 auto format 이라 되어있긴 한데 자동 들여쓰기라 바꾸는 게 좋을 것 같습니다.
단독으로는 잘 안쓸거라 생각되는데 범위를 지정해서 = 하면 들여쓰기가 되어있지 않던 것이 자동으로 바뀌죠.

그리고 0.2 버젼의 비주얼 스튜디어는 비주얼 스튜디오라 하는 게 좋지 않을까요? ^^;

오, 연가시님! 마지막 마무리를… ㅎㅎ
감사합니다.

[quote="연가시":2sagti6f]Move around and type operator to act on selected region(vim only)
커서를 움직여 지정한 범위에 연산자를 작용합니다. (vim 전용)[/quote:2sagti6f]
‘연산자를 입력합니다.’ 나 ‘연산자를 적용합니다.’ 가 아닐런지요.
제가 실제 기능에 대해서는 모르므로 문장만 봤을때 그런게 아닐까 하는 생각입니다.

[quote="연가시":2sagti6f]insert mode는 삽입 모드보단 편집 모드가 더 와닿지 않을까 하는 생각이 드네요. 아니면 입력 모드도 괜찮을 것 같고요.[/quote:2sagti6f]
삽입하는 기능이 아닌 편집 모드로의 변신 부분은 편집 모드로 수정해 두었습니다.

[quote="연가시":2sagti6f]그리고 0.2 버젼의 비주얼 스튜디어는 비주얼 스튜디오라 하는 게 좋지 않을까요? ^^;[/quote:2sagti6f]
오타입니다. ㅎㅎㅎ

얏호~! 다들 멋지십니다!

추천 기능은 없지만 글로써나마 추천 날려봅니다. :)

옛말(?)로는 원츄 쎄워본다고도…;;

암튼 '넌 이미 출력되어있다’임. ㅎㅎ (북두의 권 주인공 켄시로의 명대사 패러디~)

숫자키보드 3 번과 8번은 오류가 있는것같습니다.

보통 shift+3, shift+8을 누르게 되면 커서 아래의 단어를 찾아서 커서있는 부분부터 문서의 위, 아래로 단어를 찾아줍니다.

indent와는 다르죠…

영어원판그림에도 ident로 되어있는데 이게 indent는 아닌것 같습니다.

chainnbelt님이 지적하신대로 #과 *은 들여쓰기 기능이 아니라 검색 기능입니다.

ident를 indent로 착각하신 게 아닌가 싶네요.