마인드 맵 갤러리 VIM 편집기 사용법
vim 편집기의 사용법과 단축키를 자세하게 소개하고 있으니 관심있는 친구들이 참고하면 좋을 것 같아요!
2023-11-27 15:02:34에 편집됨VIM 사용량
일반 모드
로밍
h 왼쪽으로
j 아래로
k 업
난 오른쪽으로
w 다음 단어의 시작 부분으로 이동
W는 공백 문자 간격으로 점프한다는 점에서 w와 유사합니다.
e 다음 단어의 끝으로 이동
E는 공백 간격으로 점프한다는 점에서 e와 유사합니다.
b 이전 단어의 시작 부분으로 이동
B는 공백 기호 간격으로 점프한다는 점에서 b와 유사합니다.
100h는 100문자 왼쪽으로 이동하고, 100j는 100줄 아래로 이동한다는 의미입니다.
0 줄의 시작 부분으로 점프
^ 줄 시작 부분에 있는 비어 있지 않은 첫 번째 문자로 이동합니다.
$ 줄 끝으로 이동
gg는 파일의 첫 번째 줄의 시작 부분으로 이동합니다.
G 파일의 마지막 줄 끝으로 빠르게 이동
%는 (,{,[를 포함하여 대괄호 이동과 일치합니다.
*|#은 현재 커서가 위치한 단어와 일치하고 커서를 다음 단어로 이동시킵니다. *는 다음 단어이고 #은 이전 단어입니다.
ctrl f 다음 페이지의 내용 보기
ctrl b 이전 페이지의 내용 보기
100G 100번째 줄의 처음으로 점프
`. 텍스트에서 마지막으로 수정된 지점으로 이동합니다.
'. 마지막으로 수정된 텍스트 줄로 이동합니다.
`` 최근 수정된 두 위치로 점프
.는 텍스트의 마지막 수정 위치를 표시합니다.
g 문서의 전체 변경 목록 내에서 앞뒤로 이동합니다.
g, 반대 방향으로 유사;
변경 목록은 문서가 수정된 위치를 기록합니다.
ctrl o 이전 위치로 이동
ctrl 다음 위치로 이동
함께 사용하면 코드 사이를 이동할 수 있습니다.
복사
yy는 커서가 위치한 줄 전체를 복사합니다.
100yy는 커서가 있는 줄과 그 아래 총 100줄을 복사합니다.
yw는 커서로 시작하는 첫 번째 단어를 복사합니다.
y$는 커서를 줄 끝으로 복사합니다.
yG는 커서가 있는 줄을 텍스트 끝 부분에 복사합니다.
yH 텍스트부터 커서가 위치한 줄까지 텍스트를 복사합니다.
fa는 커서를 이 줄의 다음 문자로 이동합니다.
Fa는 커서를 문자 a 앞으로 이동합니다.
nfa는 커서를 다음 n번째 문자로 이동합니다.
nFa는 커서를 n번째 문자 a로 앞으로 이동합니다.
ta는 커서를 a 문자 앞의 문자로 이동합니다.
nta는 n번째 문자 이전의 문자로 커서를 이동합니다.
Ta는 커서를 a 문자 뒤의 문자 앞으로 이동합니다.
nTa는 n번째 문자가 나타난 후 한 문자 앞으로 이동합니다.
yfB는 첫 번째 대문자 B 사이의 내용에 커서를 복사합니다.
y2fB는 두 번째 대문자 B 사이의 내용에 커서를 복사합니다.
자르다
x는 한 문자를 뒤로 잘라냅니다. 줄의 끝이면 앞으로 잘라냅니다.
3x 3개 자르기
xp는 bs 프로그래밍 sb인 경우 비라인 끝에서 두 문자를 교환합니다.
삭제
dd는 커서 아래의 줄을 삭제합니다.
200dd는 커서가 있는 줄과 그 아래 총 100줄을 삭제합니다.
아 단어 하나 삭제해
n 단어 삭제 안 해
df" 첫 번째 큰따옴표가 나타나는 위치까지 삭제
dnf" n번째 큰따옴표가 나타나는 위치까지 삭제
d$ 줄 끝까지 커서를 삭제합니다.
d^ 줄의 시작 부분까지 커서를 삭제합니다.
dH는 텍스트의 시작 부분부터 커서가 위치한 줄까지의 텍스트를 삭제합니다.
dG는 커서 아래의 줄을 텍스트 끝까지 삭제합니다.
반죽
p 복사하거나 잘라낸 내용 붙여넣기
3p 복사하거나 잘라낸 내용을 3번 붙여넣기
P는 커서 앞에 붙여넣기를 시작합니다.
3P 커서 앞에 3번 붙여넣기 시작
들여 쓰기
<< 왼쪽 들여쓰기
>> 오른쪽 들여쓰기
블록 선택 시 블록 들여쓰기가 가능합니다.
창 명령
Ctrl w s 창을 가로로 분할
Ctrl w w 창 전환
ctrl w q 현재 분할 화면을 닫고, 마지막 분할 화면이면 VIM을 종료합니다.
ctrl w c 현재 분할 화면 닫기
ctrl w v 창을 세로로 분할
ctrl j|k를 사용하여 위쪽 창과 아래쪽 창 사이를 전환할 수 있습니다.
Ctrl h|l을 사용하여 가로 창을 전환할 수 있습니다.
ctrl w H|L을 사용하면 현재 분할 화면을 왼쪽이나 오른쪽으로 이동할 수 있습니다.
ctrl w J|K는 현재 분할 화면을 위아래로 이동할 수 있습니다.
파일 저장
ZZ 대문자 ZZ, 현재 파일 저장
ZQ 대문자 ZQ는 파일 변경 사항을 포기하고 종료합니다.
실행 취소 및 복원
u 이전 작업을 취소합니다
ctrl r 실행 취소 작업 실행 취소
문자 제거 및 바꾸기
x 현재 커서가 위치한 문자를 삭제합니다.
r은 현재 커서가 위치한 문자를 대체합니다.
R은 <ESC>가 종료되지 않는 한 커서부터 시작하는 모든 문자를 바꿉니다.
대소문자 변환
~ 커서 아래 문자의 대소문자를 변경합니다.
3~ 커서 위치부터 3글자의 대소문자를 변경하세요
g~~ 현재 줄의 대소문자 바꾸기
gUU 현재 줄의 문자를 대문자로 변경합니다.
guu는 현재 줄의 문자를 소문자로 변경합니다.
3gUU는 커서 아래의 세 줄의 문자를 대문자로 변경합니다.
gUw 커서 아래의 단어를 대문자로 변경
guw는 커서 아래의 단어를 소문자로 변경합니다.
접는 기능
zf5G는 현재 커서 줄을 5번 줄로 접습니다. 줄 번호나 텍스트 선택별로 접을 수 있습니다.
zo는 커서 위치에서 접힌 부분을 엽니다.
zO는 커서 위치의 접힌 부분과 모든 중첩된 접힌 부분을 엽니다.
zc는 커서 위치에서 접기를 닫습니다.
zC는 커서 위치의 접기와 모든 중첩된 접기를 닫습니다.
zd 커서 위치에서 접힌 부분을 삭제합니다.
zD는 커서 위치의 접기와 모든 중첩된 접기를 삭제합니다.
za 커서가 닫힌 접기 위에 있으면 접기를 열고, 그렇지 않으면 접기를 닫습니다.
zA는 za와 유사하며 중첩된 접기를 포함하여 모든 접기를 열고 닫습니다.
zv는 현재 커서 위치에서 접힌 부분을 엽니다. 커서가 있는 줄이 접히지 않을 정도로만 접힌 부분을 엽니다.
zr 중첩된 접힌 부분이 레이어별로 열립니다.
zR 모든 접힌 부분 열기
zm 중첩 접힌 부분은 레이어별로 닫힙니다.
zM 모든 접힌 부분을 닫습니다.
VIM에서 Foldlevel이라는 변수를 작동하고 zR은 Foldlevel을 가장 높은 수준으로 설정합니다. 모든 접기를 닫으면 Foldlevel이 0으로 설정됩니다.
zE는 모든 접기를 삭제합니다.
zF는 현재 커서 아래에 있는 줄에 접기를 만듭니다. 이렇게 하면 먼저 한 쌍의 접기 기호를 만든 다음 그 안에 내용을 쓸 수 있습니다.
2,10fo는 두 번째 줄을 열 번째 줄로 접는 것입니다.
[z 현재 열려 있는 접기의 시작 위치로 커서를 이동합니다.
]z 현재 열려 있는 접기의 끝 위치로 커서를 이동합니다.
zj는 커서를 다음 접기의 시작 위치로 이동합니다.
zk는 커서를 이전 접기의 끝으로 이동합니다.
매크로 기록 및 재생
매크로를 기록하려면 일반 모드에서 q 키를 누른 다음(매크로 기록은 q 키로 시작됨) 문자 w(문자는 선택 사항)를 누릅니다. 이는 매크로가 w로 등록되었음을 의미합니다. 그런 다음 매크로 기록이 완료되면 q를 다시 누릅니다. 작업 완료 녹음 작업을 완료합니다.
매크로 재생은 일반 모드에서 @w를 눌러 매크로 기록의 모든 작업을 수행합니다. @@는 마지막 매크로의 반복 작업입니다. n@w, w 매크로가 n번 실행됩니다.
코드 블록 주석
일반 모드로 들어가려면 ESC를 누르고, 시각적 블록 선택 모드로 들어가려면 Ctrl V를 누르고, 주석을 추가할 줄을 선택한 다음, Shift i 또는 s를 눌러 삽입 모드로 들어가고, 블록 선택의 첫 번째 줄 시작 부분에 주석 기호 #를 입력하고, 그런 다음 ESC를 누르고 잠시 기다리면 코드 블록의 주석을 완성할 수 있습니다. 이 방법을 사용하면 각 줄의 지정된 위치에 동일한 문자를 삽입할 수 있습니다.
주석 처리를 제거하려면 ESC를 눌러 일반 모드로 들어가고, CTRL V를 눌러 시각적 블록 모드로 들어가고, 코드 블록 줄 시작 부분의 주석을 선택한 다음 d를 눌러 주석 처리 제거를 완료합니다.
g ctrl g 바이트 통계, 마지막 ctrl g는 키 조합입니다
ggvG= 형식 코드
"0p 여러개 붙여넣기 마지막 복사" 등록
명령 모드
:%s/$/sth/ 줄 끝에 sth를 추가합니다.
:%s/^M//g는 dos 개행 문자를 대체합니다. ^M은 Ctrl v Ctrl m을 사용하여 입력할 수 있습니다.
:g/^/s*$/d 빈 줄과 공백만 있는 줄 삭제
:n1,n2 s/str1/str2/gic 줄 번호 n1에서 n2 사이의 문자열 str1을 str2로 바꿉니다. g 키워드는 한 줄에 여러 번 나타나는 경우 g가 없으면 모두 바꿉니다. i 키워드는 대소문자를 구분하지 않음, 즉 대소문자를 무시함을 의미하고 대문자 I는 대소문자를 구분함을 의미하며 이는 기본값이기도 합니다. c 키워드는 교체 전 확인을 나타냅니다. 각 키워드를 개별적으로 사용할 수 있습니다.
:%s/#.*//g # 뒤의 문자 삭제
형식은 [주소]/소스 문자열/대상 문자열/[옵션]입니다. "s"는 대체 연산을 나타내며 "substitute"의 약어입니다. [주소]에는 다음이 포함됩니다. "n,m": n 라인부터 m 라인까지를 나타냅니다. "%": 전체 파일을 나타냅니다. "1,$"에 해당합니다. ".,$": 현재 줄부터 파일 끝까지를 나타냅니다. [옵션]에는 다음이 포함됩니다. "g":globe는 전역 교체를 의미합니다. "c":confirm은 교체 전 대화형 확인을 의미합니다. "p": 한 줄씩 표시됨(CTRL L을 눌러 화면을 복원할 수 있음) "i": 무시, 대소문자를 구분하지 않음 생략하면 첫 번째 일치하는 문자열을 바꾸는 것을 의미합니다.
/hansen은 hansen 문자열을 검색하고, n은 다음 일치 항목을 검색하고, N은 이전 일치 항목을 검색하고, 2n은 아래에서 두 번째 일치 항목을 검색합니다.
:help set set 명령에 대한 도움말 정보를 봅니다.
:set은 사용자가 수정한 설정인 시스템 기본값과 다른 설정 매개변수를 표시합니다.
:syntax on|off 프로그램의 구문 강조를 켜거나 끕니다.
:set bg=dark|light 다른 배경색 설정
파일 작업
:w 편집된 내용을 파일에 씁니다.
:w! 읽기 전용 상태일 때 파일에 강제로 쓰기를 수행합니다. 실제 쓰기는 문서 권한에 따라 다릅니다.
:q vim에서 나가기
:qa! 모든 파일을 종료하고 모든 파일을 수정하지 않고 저장하세요.
:x 파일을 종료하고 변경 사항을 파일에 저장합니다.
:e fn은 다른 파일을 엽니다
:n 다음 파일로 이동
:N 이전 파일로 이동
:bn 다음 파일로 이동
:bp 이전 파일로 이동
:ls는 열려 있는 모든 파일을 나열합니다.
:b2 두 번째 파일을 표시합니다.
:q! 수정된 파일을 종료하고 모든 변경 사항을 삭제합니다.
:wq 저장 후 종료
:w fn 파일 이름을 fn으로 저장합니다.
:r fn fn 파일을 읽고 현재 편집 중인 파일의 커서에 추가합니다.
:n1, n2 w fn n1부터 n2까지의 내용을 fn 파일로 저장합니다.
:n1,n2 d n1~n2 행의 모든 내용을 삭제합니다. d는 삭제 키워드입니다.
:! 명령은 편집기를 종료하고 명령 명령을 실행하는 것을 표시합니다.
:r! 명령은 명령 명령을 실행하고 커서 뒤에 실행 결과를 추가합니다.
:sp fn1 화면을 위아래로 분할하여 다른 파일 열기
:vsp fn1 화면을 왼쪽과 오른쪽으로 분할하여 다른 파일 열기
:set nu 줄 번호 표시를 켭니다.
:set hlsearch 검색된 키워드가 강조 표시됩니다.
:set autoindent가 자동 들여쓰기를 켭니다.
:set 커서라인이 수평선을 켭니다.
:set backup 파일을 자동으로 저장할지 여부입니다. 이 옵션을 켜면 편집을 위해 파일을 열 때마다 원본 파일의 이름이 fn~이 됩니다.
:set 눈금자 오른쪽 하단에 있는 상태 표시줄 설명을 열고 닫습니다.
:set ic는 키워드를 검색할 때 대소문자를 구분합니다.
:set showmode는 모드 전환 후 상태를 켜고 끕니다. 예를 들어 삽입 모드로 들어가면 왼쪽 하단에 --INSERT--가 표시됩니다.
:set Wrap은 줄 바꿈을 설정합니다. 즉, 텍스트 줄이 화면을 벗어나 다음 줄에 표시됩니다. 이는 기본값이기도 합니다.
:set Spell 텍스트 철자 감지 기능을 켭니다.
:set list는 줄 바꿈과 같이 텍스트에 보이지 않는 문자를 표시합니다.
매개변수 앞에 no를 추가하면 다음과 같이 반대 설정을 수행할 수 있습니다. set nonu를 사용하면 줄 번호 표시가 꺼집니다.
:set backspace=(012) 편집 모드로 들어가십시오. 백스페이스를 사용하여 키를 눌러 문자를 삭제할 수 있지만 일부 배포판에서는 이를 허용하지 않습니다. 이때 백스페이스를 설정하면 이 기능을 수행할 수 있습니다. =2는 모든 문자를 삭제한다는 의미입니다. =0|1인 경우 입력한 문자만 삭제할 수 있으며 원본 텍스트에 있는 문자는 삭제할 수 없습니다.
:set fdm=marker는 접기 표시를 켜고 접기의 시작과 끝 부분에 세 개의 연속 중괄호를 자동으로 추가합니다. 접기 정보는 텍스트를 닫은 후에도 계속 기록될 수 있습니다. 열 수도 있습니다. 이것은 ~/.vimrc에 추가되고 vim 편집기가 열릴 때마다 자동으로 로드됩니다. 마크 뒤에 접힌 "#comments{{{1"에 설명과 레벨 번호를 추가할 수 있습니다.
:set fenc 쿼리 문서 인코딩
:set enc=utf8 지정된 인코딩으로 변환
:set fileformat=unix는 줄 바꿈 문자를 전환하는 데 사용되며 dos, unix 및 mac을 지원합니다. 파일 형식은 ff로 축약될 수 있습니다.
:set betweenscroll=0 커서가 화면 가장자리에 도달하면 자동으로 화면 텍스트의 1/2을 확장하여 표시합니다. 보다 부드러운 문자별 확장 표시를 얻으려면 nowrap을 설정해야 합니다.
:set scrolloff=3 스크롤 라인 수를 설정합니다.
:set linebreak는 VIM이 적절한 위치에서 줄을 끊도록 설정합니다. 즉, ^|!*-;:./?
:set breakat-=_ 줄 바꿈에서 밑줄을 제거하도록 설정합니다.
:set showbreak=-> 중단 위치에 명령 표시
:set nolinebreak 복원 사용자 정의 줄 바꿈
접기를 설정하면 gj 또는 g<Down>을 사용하여 접기 내에서 이동할 수 있고, gk 또는 g<Up>을 사용하여 위쪽으로 이동할 수 있습니다.
:set ts=4 TAB 길이를 공백 4개로 설정합니다.
:setexpandtab은 TAB을 공백으로 대체합니다. 설정 후 탭은 ts개의 공백으로 대체됩니다.
%retab! 원래 TAB이 ts개의 공백으로 대체되도록 TAB을 다시 로드하세요.
TAB을 공백으로 바꾸세요! 공백이 아닌 문자, 즉 추가되지 않은 경우 모든 TAB 다음에 TAB을 처리하는 데 사용됩니다! , 줄 시작 부분의 TAB만 처리됩니다.
:ts=4로 설정
: 확장 탭 없음 설정
:%재탭!
공백을 TAB으로 바꾸기
tabe fn VIM 플러그인 미니버퍼를 사용하여 새 탭 페이지를 생성하고 새 탭 페이지에서 fn 파일을 편집합니다.
gt 다음 탭으로 전환
gT 이전 탭으로 전환
:tabr 첫 번째 탭 페이지로 전환
:tabl은 마지막 탭으로 전환됩니다.
:tabm [N] 현재 탭을 N번째 탭 뒤로 이동
:map ^M I#<ESC> 단축키 Ctrl m을 설정하여 커서가 있는 줄의 시작 부분에 #(#은 주석을 나타냄)을 삽입하고 편집 상태를 종료합니다. map은 키워드이고 그 뒤에 키와 값이 옵니다. 키는 ^M에 해당합니다. 이 키는 단축키 Ctrl M을 나타내는 단축키 Ctrl v M으로 입력됩니다. 값은 I#<ESC>에 해당하며, 이는 이러한 바로 가기 키를 순서대로 실행한다는 의미입니다. I는 커서를 줄의 시작 부분으로 전환하여 편집 상태로 들어간다는 뜻이고, #은 #을 입력한다는 뜻이며, <ESC>는 편집 상태에서 빠져나온다는 뜻이다.
:ab email hualong1009@foxmail.com ab는 명령이 실행된 후 편집 모드로 전환되며 이메일은 자동으로 이메일 주소 hualong1009@foxmail.com으로 대체됩니다. 동일한 긴 문자열 시나리오의 빈번한 입력에 적합
:sort r /regex/ regex는 vim 편집기에서 텍스트를 정렬하는 정규식입니다.
:toHTML 현재 페이지를 HTML로 변환합니다.
:reg 모든 레지스터의 상태를 봅니다. 레지스터는 Vim이 일부 텍스트나 작업 세부 정보를 저장하는 데 사용하는 메모리 공간입니다. 각 공간에는 나중에 액세스할 수 있도록 식별자가 있습니다.
삽입 모드
ctrl [또는 ctrl c 키 조합은 ESC 키 기능을 실현합니다. 즉, 편집 상태를 종료합니다.
Ctrl D 키 조합 왼쪽 들여쓰기
ctrl t 키 조합 오른쪽 들여쓰기
키워드 및 경로 완성
ctrl x -> ctrl n은 현재 편집 중인 파일의 내용을 키 라이브러리 완성으로 사용합니다.
프롬프트 없이 빠른 완료를 위해 ctrl n을 사용할 수도 있습니다.
ctrl x -> ctrl f는 현재 디렉토리의 파일을 키워드로 사용하여 경로 파일을 완성합니다.
ctrl x -> ctrl o는 파일 이름을 구문 보충으로 사용하고 wim의 내장 키워드로 완성합니다.
Ctrl x i 줄 완성
Ctrl w 커서 위치 앞의 단어를 삭제합니다.
Ctrl u는 커서 위치를 줄의 시작 부분으로 삭제합니다.
시각 모드
화살표 키나 h, j, k, l을 사용하여 해당 콘텐츠를 로밍하고 선택할 수도 있습니다. 또한 gg 및 G를 사용하여 파일의 시작이나 끝으로 직접 이동할 수도 있습니다.
ctrl v 블록 모드, 블록 동작, UE의 블록 동작과 동일
o 선택한 블록의 다른 끝점으로 커서를 이동합니다.
U 선택한 블록의 내용을 대문자로 변환합니다.
O는 커서를 블록의 다른 끝으로 이동합니다.
아 단어 하나 선택했어
ab는 대괄호 자체를 포함하여 {} 대괄호 안의 모든 항목을 선택합니다.
aB {} 괄호 안의 모든 내용을 선택하세요.
ib는 대괄호를 제외하고 대괄호 안의 내용을 선택합니다.
iB는 괄호 안의 모든 항목을 선택합니다.
va 커서가 "",'',(),{},[]에 있을 때 va는 큰따옴표를 포함하여 "" 안의 모든 내용을 선택한다는 의미입니다.
vi 커서가 "",'',(),{},[]에 있을 때 va는 큰따옴표 없이 "" 안의 모든 내용을 선택한다는 의미입니다.
> 오른쪽 쉬프트 차단
< 왼쪽 시프트 차단
y 복사 블록
d 블록 삭제
~ 블록 내용의 대소문자를 전환합니다.
이 모드에서는 영역을 선택하고 다음을 직접 입력합니다. VIM은 다음과 같이 자동으로 완성합니다. '<,'> 이는 n1, n2를 지정하는 것과 유사하게 작업 범위를 나타내는 시각적 모드에서 선택 항목을 대체하는 작업입니다.
vim 텍스트 편집
vim 파일 파일 편집
vim fn1 fn2 ... 여러 파일을 동시에 편집합니다. 기본적으로 첫 번째 파일인 file1만 표시됩니다.
vim -on fn1 fn2 ... 동시에 여러 파일을 편집하기 위해 화면을 위아래로 분할
vim -On fn1 fn2 ... 왼쪽 및 오른쪽 분할 화면에서 여러 파일 열기
vim -b ...바이너리로 문서 열기
vim num은 문서를 열고 num 행을 찾습니다.
vimdiff a.txt b.txt 텍스트 비교
vimdiff 텍스트 비교
zc 축소 행
조 오픈 폴드
]c 다음 차이로 이동
[c 이전 차이점으로 점프
Ctrl w w 창을 왼쪽과 오른쪽 또는 위아래로 전환합니다.
dp는 커서가 있는 줄을 다른 파일의 해당 줄에 복사합니다.
do 비교 파일에 해당하는 라인을 커서 위치의 라인에 복사합니다.