vi 단축키 정리

prana·2024년 11월 11일
0

Linux

목록 보기
29/29
모드단축키기능 설명
일반 모드i현재 커서 위치에서 입력 모드로 전환
I줄의 맨 앞에서 입력 모드로 전환
a커서 다음 위치에서 입력 모드로 전환
A줄의 끝에서 입력 모드로 전환
o다음 줄에 새로운 줄을 생성하고 입력 모드로 전환
O이전 줄에 새로운 줄을 생성하고 입력 모드로 전환
Esc입력 모드에서 일반 모드로 전환
x현재 커서 위치의 문자 삭제
dd현재 줄 삭제
yy현재 줄 복사
p복사한 줄 또는 문자 붙여넣기
u마지막 명령 취소
Ctrl + r마지막 취소 명령 복원
G파일의 마지막 줄로 이동
gg파일의 첫 줄로 이동
h, j, k, l각각 왼쪽, 아래, 위, 오른쪽으로 이동
Ctrl + f다음 페이지로 이동
Ctrl + b이전 페이지로 이동
H화면의 맨 위로 커서 이동
M화면의 중간으로 커서 이동
L화면의 맨 아래로 커서 이동
Ctrl + e한 줄 아래로 화면 스크롤
Ctrl + y한 줄 위로 화면 스크롤
:number특정 줄 번호로 이동
0현재 줄의 맨 앞으로 이동
$현재 줄의 맨 끝으로 이동
w다음 단어의 시작으로 이동
b이전 단어의 시작으로 이동
e단어의 끝으로 이동
%괄호 쌍 사이 이동 (예: (, {, [)
*현재 단어와 동일한 단어 검색
#현재 단어와 동일한 단어 이전 위치로 검색
일반 모드g확장 명령어 사용 시작
gU선택한 텍스트를 대문자로 변환
gu선택한 텍스트를 소문자로 변환
dG현재 줄부터 파일 끝까지 삭제
yG현재 줄부터 파일 끝까지 복사
g*현재 단어와 동일한 단어 파일 내에서 검색
g#현재 단어와 동일한 단어 이전 위치로 검색
Ctrl + g현재 파일명, 줄 번호, 위치 정보 표시
gd현재 함수 정의로 이동
입력 모드Ctrl + h커서 왼쪽의 문자 삭제
Ctrl + w커서 왼쪽의 단어 삭제
Ctrl + u커서부터 줄 시작까지 삭제
비주얼 모드v비주얼 모드로 전환 (문자 단위 선택)
V라인 단위로 비주얼 모드 전환
y선택한 텍스트 복사
d선택한 텍스트 삭제
>선택한 텍스트 들여쓰기
<선택한 텍스트 내어쓰기
gv마지막으로 선택한 영역 다시 선택
U선택 영역 대문자로 변경
u선택 영역 소문자로 변경
:s/old/new/g선택한 영역 내에서 old를 new로 변경
명령 모드:명령 입력 시작
:w파일 저장
:q편집기 종료
:wq저장 후 종료
:q!저장하지 않고 강제 종료
:set nu줄 번호 표시
:set nonu줄 번호 숨기기
/단어단어 검색
n검색된 단어의 다음 위치로 이동
N검색된 단어의 이전 위치로 이동
:r <filename>현재 파일에 다른 파일 내용 읽어오기
:!<command>vi에서 나가지 않고 외부 명령어 실행
:g/pattern/d패턴에 맞는 줄을 모두 삭제
:set ic대소문자 구분 없이 검색
:set noic대소문자 구분 검색
:history명령어 히스토리 확인
:s/foo/bar/gc현재 줄에서 foo를 bar로 모두 변경, 변경 전 확인
편집 및 삭제c선택한 텍스트 변경 (delete 후 insert)
ciw현재 단어 변경
cw현재 단어의 나머지 부분 변경
r한 글자 대체
R덮어쓰기 모드 시작
J아래 줄과 현재 줄 결합
~문자 대소문자 변경
고급 편집>>현재 줄을 오른쪽으로 들여쓰기
<<현재 줄을 왼쪽으로 내어쓰기
5dd5줄 삭제
5yy5줄 복사
10G10번째 줄로 이동
=G현재 줄부터 파일 끝까지 자동 들여쓰기 적용
m[a-z]북마크 설정 (a-z까지 선택 가능)
'[a-z]지정한 북마크로 이동
Ctrl + o이전 위치로 돌아가기
Ctrl + i다음 위치로 이동
저장 및 종료:x저장 후 종료
ZZ저장하고 종료 (일반 모드에서 Shift + Z 두 번)
ZQ저장하지 않고 종료 (일반 모드에서 Shift + Q 두 번)
검색 및 치환:%s/foo/bar/g파일 전체에서 foo를 bar로 모두 변경
:%s/foo/bar/gc파일 전체에서 foo를 bar로 변경, 변경 전 확인
:10,20s/foo/bar/g10번 줄부터 20번 줄까지 foo를 bar로 변경
:noh하이라이트된 검색 결과 지우기
:vimgrep /pattern/파일 내에서 패턴 검색 (검색 결과 목록에 추가)
:copenquickfix 창 열기 (vimgrep 결과 확인 가능)
cw단어 교체 시작 (커서 위치의 단어를 바꿀 수 있는 명령어)
:tabe <filename>새 탭에서 파일 열기
복사, 붙여넣기"+y시스템 클립보드에 복사 ("+p로 클립보드에서 붙여넣기)
"*y선택된 텍스트를 클립보드로 복사 ("*p로 붙여넣기)
P커서 앞에 붙여넣기
gp붙여넣기 후 커서를 붙여넣은 텍스트 끝으로 이동
창 관리:split가로로 창 분할
:vsplit세로로 창 분할
Ctrl + w + w다음 창으로 이동
Ctrl + w + h왼쪽 창으로 이동
Ctrl + w + j아래쪽 창으로 이동
Ctrl + w + k위쪽 창으로 이동
Ctrl + w + l오른쪽 창으로 이동
:close현재 창 닫기
:only현재 창을 제외한 나머지 닫기
:tabnew <filename>새 탭 열기
gt다음 탭으로 이동
gT이전 탭으로 이동
파일 관리:e <filename>파일 열기
:w <filename>다른 이름으로 저장
:r !ls현재 파일에 디렉토리 목록 삽입
:e#이전 파일로 돌아가기
:bd버퍼 닫기
:ls버퍼 목록 표시
:b <number>번호에 해당하는 버퍼로 이동
매크로 사용q[a-z]매크로 기록 시작 (a-z까지 이름 지정 가능)
q매크로 기록 종료
@[a-z]지정한 매크로 실행 (@a, @b 등)
@@마지막 매크로 반복 실행

set 명령어

명령어설명
:set nu줄 번호를 표시합니다.
:set nonu줄 번호를 숨깁니다.
:set autoindent자동으로 들여쓰기를 설정합니다.
:set noautoindent자동 들여쓰기를 해제합니다.
:set shiftwidth=4들여쓰기에 사용할 공백의 개수를 4로 설정합니다.
:set tabstop=4탭을 4칸 공백으로 표시합니다.
:set expandtab탭 입력 시 공백으로 변환합니다.
:set noexpandtab탭 입력 시 실제 탭 문자를 사용합니다.
:set wrap화면에 맞게 텍스트 줄바꿈을 설정합니다.
:set nowrap텍스트 줄바꿈을 해제하여 한 줄로 표시합니다.
:set ruler상태 표시줄에 현재 커서의 위치(줄과 열)를 표시합니다.
:set noruler상태 표시줄에서 커서 위치 표시를 숨깁니다.
:set hlsearch검색어를 하이라이트로 표시합니다.
:set nohlsearch검색어 하이라이트를 해제합니다.
:set ignorecase검색 시 대소문자를 구분하지 않습니다.
:set noignorecase검색 시 대소문자를 구분합니다.
:set incsearch검색 시 입력할 때마다 즉시 일치 항목을 표시합니다.
:set noincsearch실시간 검색을 해제합니다.
:set smartcase검색어에 대문자가 포함된 경우 대소문자를 구분하여 검색합니다.
:set nosmartcase대소문자 구분 검색을 해제합니다.
:set cursorline현재 커서가 있는 줄을 하이라이트로 표시합니다.
:set nocursorline현재 줄 하이라이트를 해제합니다.
:set cursorcolumn현재 커서가 있는 열을 하이라이트로 표시합니다.
:set nocursorcolumn현재 열 하이라이트를 해제합니다.
:set numberwidth=4줄 번호 표시를 위한 너비를 4로 설정합니다.
:set background=dark어두운 배경에 맞춰 색상을 조정합니다.
:set background=light밝은 배경에 맞춰 색상을 조정합니다.
:set showcmd하단에 입력 중인 명령어를 표시합니다.
:set noshowcmd입력 중인 명령어 표시를 해제합니다.
:set showmode현재 모드(입력 모드, 명령 모드 등)를 화면에 표시합니다.
:set noshowmode모드 표시를 해제합니다.
:set list공백이나 탭, 줄바꿈 등을 기호로 표시합니다.
:set nolist공백 등의 기호 표시를 해제합니다.
:set listchars=tab:>-,trail:-탭을 >로, 끝 공백을 -로 표시합니다.
:set scrolloff=3커서가 화면 상단 또는 하단에 닿기 전 3줄의 여유를 둡니다.
:set sidescrolloff=3커서가 화면 좌우 끝에 닿기 전 3열의 여유를 둡니다.
:set splitbelow새 가로 분할 창을 아래쪽에 엽니다.
:set nosplitbelow새 가로 분할 창을 위쪽에 엽니다.
:set splitright새 세로 분할 창을 오른쪽에 엽니다.
:set nosplitright새 세로 분할 창을 왼쪽에 엽니다.
:set wildmenu명령어 자동 완성 시 옵션 목록을 표시합니다.
:set nowildmenu자동 완성 목록 표시를 해제합니다.
:set backup파일 백업을 활성화하여 편집 전 원본을 저장합니다.
:set nobackup백업 파일 생성을 비활성화합니다.
:set undofile되돌리기 기록을 파일로 저장하여 닫았다 열어도 되돌리기가 가능하게 합니다.
:set noundofile되돌리기 파일 저장을 비활성화합니다.
:set autoread파일이 외부에서 변경되면 자동으로 다시 읽어옵니다.
:set noautoread외부 변경 시 자동 읽어오기를 비활성화합니다.
:set lazyredraw매크로나 스크립트 실행 시 화면 리프레시를 지연하여 성능을 향상시킵니다.
:set nolazyredraw화면 리프레시 지연을 비활성화합니다.
:set backspace=indent,eol,start백스페이스가 들여쓰기, 줄 끝, 줄 시작에서 작동하게 설정합니다.
:set wrapmargin=2오른쪽 끝에서 2글자 앞에서 자동으로 줄바꿈합니다.
:set smartindent자동 들여쓰기 설정을 스마트 모드로 활성화합니다.
:set nosmartindent스마트 자동 들여쓰기를 비활성화합니다.
:set viminfo='20,<10020개의 이전 명령과 100줄의 이전 내용 기억

입력 모드

명령어설명
i현재 커서 위치에서 입력 모드로 전환
I줄의 맨 앞에서 입력 모드로 전환
a커서의 다음 위치에서 입력 모드로 전환
A줄의 끝에서 입력 모드로 전환
o현재 줄의 아래쪽에 새 줄을 삽입하고 입력 모드로 전환
O현재 줄의 위쪽에 새 줄을 삽입하고 입력 모드로 전환
r현재 커서 위치의 한 글자를 다른 문자로 교체 (입력한 문자로 대체)
R덮어쓰기 모드로 전환하여 입력 (현재 위치부터 기존 텍스트를 덮어씌움)
s현재 커서 위치의 한 글자를 삭제하고 입력 모드로 전환
S현재 줄 전체를 삭제하고 입력 모드로 전환 (cc와 동일)
c선택한 범위의 텍스트를 삭제 후 입력 모드로 전환 (d와 입력 모드 결합)
cc현재 줄 전체를 삭제하고 입력 모드로 전환 (S와 동일)
cw현재 단어의 남은 부분을 삭제하고 입력 모드로 전환
c$커서 위치부터 줄 끝까지 삭제하고 입력 모드로 전환
c0커서 위치부터 줄 시작까지 삭제하고 입력 모드로 전환
ciw현재 단어 전체를 삭제하고 입력 모드로 전환 (iw는 "inner word"를 의미)
ci"큰따옴표 안의 내용을 삭제하고 입력 모드로 전환 (ci'로 작은따옴표 내부도 가능)
d삭제 명령어로, 선택한 영역의 텍스트를 삭제 (dd, dw 등과 결합하여 사용)
dd현재 줄을 삭제 (다음 줄로 이동)
D커서 위치부터 줄 끝까지 삭제
dw단어 끝까지 삭제 (커서가 단어의 시작에 위치할 때)
x현재 커서 위치의 한 글자를 삭제
X현재 커서 위치의 앞쪽 한 글자를 삭제
diw현재 단어 전체를 삭제 (d + iw의 결합)
daw현재 단어를 포함한 공백까지 삭제 (d + aw로 단어와 주변 공백까지 삭제)
dG현재 줄부터 파일 끝까지 삭제
dgg현재 줄부터 파일 시작까지 삭제
C커서 위치부터 줄 끝까지 삭제 후 입력 모드로 전환 (동작 방식은 c$와 동일)
J현재 줄과 아래 줄을 결합
p삭제 또는 복사한 텍스트를 커서 다음 위치에 붙여넣기 (dd로 삭제한 줄을 붙일 때 유용)
P삭제 또는 복사한 텍스트를 커서 앞 위치에 붙여넣기
u마지막 작업을 취소 (Undo)
Ctrl + r마지막 취소 작업을 다시 실행 (Redo)
.가장 최근에 실행한 명령어를 반복

0개의 댓글