English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Linux vi/vim

모든 Unix Like 시스템은 vi 문서 편집기를 내장하고 있으며, 다른 문서 편집기는 반드시 존재하지 않습니다.

하지만 현재 우리가 많이 사용하는 것은 vim 편집기입니다.

vim은 프로그램 편집 능력을 가지고 있으며, 문자的颜色으로 구문의 정확성을辨别하여 프로그래밍을 편리하게 합니다.

관련 기사:Vim 완전 가이드 - 초보자부터 고급자까지

vim이 무엇인가요?

Vim은 vi에서 발전한 텍스트 편집기입니다. 코드 완성, 컴파일 및 오류 점프 등 편리한 프로그래밍 기능이 특히 풍부하여 프로그래머들 사이에서 널리 사용됩니다.

간단히 말해, vi는 오래된 텍스트 프로세서지만 기능은 매우 풍부하며, 개선할 수 있는 점도 많습니다. vim은 프로그래머들이 매우 유용한 도구라고 할 수 있습니다.

vim의 공식 웹사이트(http://www.vim.org) 자신도 vim이 프로그램 개발 도구보다는 문서 처리 소프트웨어가 아니라고 말합니다.

vim 키보드 그림:

vi/vim 사용법

기본적으로 vi/vim은 총 세 가지 모드로 나뉘며, 각각은 다음과 같습니다:명령 모드(Command mode),입력 모드(Insert mode)그리고베이스 라인 명령 모드(Last line mode)이 세 가지 모드의 기능은 다음과 같습니다:

명령 모드:

사용자가 vi를 최근에 실행했습니다./vim을 실행하면 명령 모드로 들어갑니다.

이 상태에서 키보드의 동작은 Vim에 명령어로 인식되며 입력 문자로 인식되지 않습니다. 예를 들어, 지금 i를 누르면 문자가 입력되지 않으며, i는 명령어로 인식됩니다.

다음은 일반적으로 사용하는 몇 가지 명령어입니다:

  • i 입력 모드로 전환하여 문자를 입력합니다.

  • x 현재 커서가 있는 위치의 문자를 지웁니다.

  • : 베이스 라인 명령 모드로 전환하여 가장 아래 줄에 명령어를 입력합니다.

텍스트를 편집하고 싶다면: Vim을 실행하고 명령 모드로 들어가서 i를 누르고 입력 모드로 전환합니다.

명령 모드는 가장 기본적인 명령어들만을 가지고 있기 때문에 더 많은 명령어를 입력하기 위해 베이스 라인 명령 모드를 사용해야 합니다.

입력 모드

명령 모드에서 i를 누르면 입력 모드로 들어갑니다.

입력 모드에서는 다음 키를 사용할 수 있습니다:

  • 문자 키 및 Shift 조합문자 입력

  • ENTERENTER

  • BACK SPACEBACK SPACE

  • DELBACK SPACE

  • DEL방향 키

  • HOME/HOME행 내에서 커서를 이동/HOME

  • END/행 끝Page Up/Page Down

  • Insert커서를 입력 모드로 전환/대체 모드, 커서가 줄로 변합니다/밑줄

  • ESC를 누르면 입력 모드에서 나가고 명령 모드로 전환됩니다

바닥 명령 모드

명령 모드에서 : (영문 콜론)을 누르면 바닥 명령 모드로 들어갑니다.

바닥 명령 모드에서는 단일 문자나 여러 문자의 명령어를 입력할 수 있으며, 사용할 수 있는 명령어는 매우 많습니다.

바닥 명령 모드에서는 기본 명령이 있습니다. (콜론은 생략됨):

  • q 프로그램 종료

  • w 파일 저장

Esc 키를 눌러 언제든지 바닥 명령 모드를 탈출할 수 있습니다.

간단히 말해서, 이 세 가지 모드를 아래의 아이콘처럼 표현할 수 있습니다:

vi/vim 사용 예제

vi를 사용하세요/vim 일반 모드로 이동

vi를 사용하여 w라는 이름의 파일을 만들고 싶다면:3codebox.txt 파일을 편집할 때는 다음과 같이 할 수 있습니다:

$ vim w3codebox.txt

직접 입력 vi 파일 이름 vi 일반 모드로 이동할 수 있습니다. 주의하세요, vi 뒤에는 파일 이름이 추가되어야 합니다. 파일이 존재하든 아니든!

i를 눌러 입력 모드(또는 편집 모드)로 이동하여 텍스트를 편집 시작합니다

일반 모드에서, i, o, a 등의 문자를 누르면 입력 모드로 이동할 수 있습니다!

편집 모드에서, 왼쪽 아래 상태 표시줄에 –INSERT가 나타날 수 있습니다.- 의 텍스트가 나타나면, 어떤 문자도 입력할 수 있는 표시입니다.

이때, 키보드에서 Esc 이 키 이외에도, 다른 키들은 일반 입력 키로 볼 수 있습니다. 따라서 어떤 편집도 할 수 있습니다.

Esc 키를 눌러 일반 모드로 돌아가세요

좋아, 가정해 보면 이미 위의 스타일로 편집이 완료된 것입니다. 그렇다면 어떻게 탈출해야 하나요? 맞습니다! 그냥 Esc 이 버튼을 누르면 됩니다! 바로 왼쪽 아래의 – INSERT –가 사라질 것을 발견하게 될 것입니다!

일반 모드에서 :wq vi에서 저장 후 나가기

OK, 우리는 아카이브를 저장해야 합니다. 저장하고 나가는 명령어는 매우 간단합니다. 입력하세요 :wq 저장하고 나가면 됩니다!

OK! 이렇게 하면 w를 성공적으로 생성했습니다.3codebox.txt 파일.

vi/vim 키 설명

위의 간단한 예제의 i, Esc, :wq 이외에도, 실제로 vim은 사용할 수 있는 매우 많은 키가 있습니다.

1부: 일반 모드에서 사용할 수 있는 커서 이동, 복사 붙여넣기, 검색 대체 등

커서 이동 방법
h 또는 왼쪽 화살표 키(←)커서를 한 문자 왼쪽으로 이동합니다
j 또는 아래 화살표 키(↓)커서를 한 문자 아래로 이동합니다
k 또는 위 화살표 키(↑)커서를 한 문자 위로 이동합니다
l 또는 오른쪽 화살표 키(→)커서를 한 문자 오른쪽으로 이동합니다
右手를 키보드에 올려놓으면, hjkl이 함께 배열되어 있음을 발견할 수 있습니다. 따라서 이 네 개의 버튼을 사용하여 커서를 이동할 수 있습니다. 다시 이동을 여러 번 수행하고 싶다면, 예를 들어 아래로 이동 30 행, "30j" 또는 "30↓"의 조합 키를 누르면 따라서 원하는 횟수(숫자)를 추가한 후, 해당 동작을 누르면 됩니다!
[Ctrl] + [f]화면『아래로』한 페이지 이동, [Page Down] 키와 같습니다 (보통 사용)
[Ctrl] + [b]화면『위로』한 페이지 이동, [Page Up] 키와 같습니다 (보통 사용)
[Ctrl] + [d]화면『아래로』반페이지 이동
[Ctrl] + [u]화면『위로』반페이지 이동
+커서가 비공백 문자의 아래 행으로 이동합니다
-커서가 비공백 문자의 위 행으로 이동합니다
n<space>이 n은『숫자』를 나타냅니다. 예를 들어 20 . 숫자를 누른 후 공백 키를 누르면 커서가 이 행의 n 문자. 예를 들어 20<space>이면 커서가 뒤로 이동합니다 20 문자 거리.
0 또는 기능 키[Home]이 숫자『0』은 이 행의 가장 앞 문자로 이동합니다 (보통 사용)
$ 또는 기능 키[End]이 행의 마지막 문자로 이동합니다(일반 사용)
H커서를 화면의 가장 위 행의 첫 번째 문자로 이동합니다
M커서를 화면의 중앙 행의 첫 번째 문자로 이동합니다
L커서를 화면의 가장 아래 행의 첫 번째 문자로 이동합니다
G이 파일의 마지막 행으로 이동합니다(일반 사용)
nGn은 숫자입니다. 이 파일의 n행으로 이동합니다. 예를 들어 20G이면 이 파일의 첫 번째 행으로 이동합니다. 20 행(:set nu와 함께 사용 가능)
gg이 파일의 첫 번째 행으로 이동합니다. 이는 1G 아! (보통 사용)
n<Enter>n은 숫자입니다. 커서를 아래로 n줄 이동합니다(일반 사용)
검색 및 대체
/word커서 아래에 word라는 이름의 문자열을 찾습니다. 예를 들어, 파일 내에서 vbird를 검색하려면 이 문자열을 입력하면 /vbird 만들어서! (보통 사용)
?word커서 위에 word라는 이름의 문자열을 찾습니다.
n이 n은 영문 키입니다. 이전 검색 동작을 반복하는 것을 나타냅니다. 예를 들어, 만약 우리가 얼마 전에 실행 /vbird 이동하려면 vbird 이라는 문자열을 찾아按下 n 후, 다음 이름이 vbird인 다음 이름을 계속 찾습니다. 의 문자열. 만약 ?vbird를 실행하면, n을 누르면 vbird 이름의 문자열을 위로 계속 찾습니다!
N이 N은 영문 키입니다. n과는 반대로, "역방향"으로 이전 검색 동작을 수행합니다. 예를 들어 /vbird 후에 N을 누르면 "위로" 찾기를 의미합니다.
사용 /word와 n 및 N은 매우 유용합니다! 중요한 키워드를 반복적으로 찾을 수 있습니다!
:n1,n2s/word1/word2/gn1 와 n2 는 숫자입니다. n번째1 와 n2 행 사이에서 word를 찾습니다1 이 문자열을 찾아 그 문자열을 word2 예를 들어, 이 문자열에서 100 到 200 행 사이에서 vbird를 찾아 VBIRD로 대체하려면:
『:100,200s/vbird/VBIRD/g』。(일반 사용)
:1$s/word1/word2/g 또는 :%s/word1/word2/g첫 번째 행에서 마지막 행까지 word를 찾습니다1 문자열을 찾아 그 문자열을 word2 !(일반 사용)
:1$s/word1/word2/gc 또는 :%s/word1/word2/gc첫 번째 행에서 마지막 행까지 word를 찾습니다1 문자열을 찾아 그 문자열을 word2 그리고 대체하기 전에 사용자에게 확인 문자를 표시하여 사용자에게 확인을 받습니다 (확인) 대체할 필요가 있습니까?!(일반 사용)
지우기, 복사 및 붙이기
x, X한 행의 글자 사이에서, x는 뒤로 한 문자를 지웁니다(相当于 [del] 키) X는 앞으로 한 문자를 지웁니다(相当于 [backspace] 또는 즉, 백스페이스 키) (보통 사용)
nxn은 숫자입니다. 연속적으로 n개의 문자를 지웁니다. 예를 들어, 나는 연속적으로 지우고 싶습니다 10 개 문자를 『10x』.
dd커서가 있는 행 전체를 지웁니다(일반 사용)
nddn은 숫자입니다. 커서 아래로 n행을 지웁니다. 예를 들어 20dd는 지우기 20 행 (보통 사용)
d1G커서에서 첫 번째 행까지 모든 데이터를 지웁니다
dG커서에서 마지막 행까지 모든 데이터를 지웁니다
d$커서 위치에서 행의 마지막 문자까지 지우습니다
d0그것은 숫자 0입니다. 커서 위치에서 행의 첫 번째 문자까지 지우습니다
yy커서가 있는 행을 복사합니다(일반 사용)
nyyn은 숫자입니다. 커서 아래로 n행을 복사합니다. 예를 들어 20yy는 복사 20 행(일반 사용)
y1G커서가 있는 행에서 첫 번째 행까지 모든 데이터를 복사합니다
yG커서가 있는 행에서 마지막 행까지 모든 데이터를 복사합니다
y0커서가 있는 문자를 해당 행의 시작까지 모든 데이터로 복사합니다
y$커서가 있는 문자를 해당 행의 끝까지 모든 데이터로 복사합니다
p, Pp는 커서 아래의 행에 복사된 데이터를 붙입니다. P는 커서 위의 행에 붙입니다! 예를 들어, 현재 커서가 20 행이며, 이미 복사되었습니다. 10 데이터가 있으면 p를 누르면 위치에 붙여집니다}} 10 행 데이터가 원래의 20 행 이후로는 즉, 21 행부터 붙여집니다. 그러나 P를 누를 때는 어떻게 될까요? 그래서 원래의 20 행은 변환되어 30 행. (보통 사용)
J마우스 포인터가 있는 행과 다음 행의 데이터를 하나의 행으로 합칩니다
c다중 데이터를 반복으로 지우기 예를 들어 아래로 지우기 10 행, [ 10cj ]
u마지막 작업을 되돌립니다.(일반적)
[Ctrl]+r마지막 작업을 되돌립니다.(일반적)
u와 [Ctrl]+r은 매우 일반적인 명령입니다! 하나는 되돌리기이고, 다른 하나는 다시 수행합니다~ 이 두 가지 기능 키를 사용하면, 편집은嘿嘿!많이 즐거워질 것입니다!
.문제를 두려워하지 마세요! 이것이 바로 소수점입니다! 이는 지금까지 수행한 작업을 반복하는 의미입니다. 다시 지우기, 다시 붙이기 등의 행동을 반복하려면 소수점『.』을 누르세요! (보통 사용)

제2부: 일반 모드에서 편집 모드로 전환할 수 있는 버튼 설명

입력 또는 대체의 편집 모드로 진입하세요
i, I입력 모드(Insert mode)로 진입하세요:
i는『현재 마우스 포인터가 있는 위치에서 입력하기』입니다,I는『현재 행의 첫 번째 비공백 문자부터 입력하기』입니다。 (보통 사용)
a, A입력 모드(Insert mode)로 진입하세요:
a는『현재 마우스 포인터가 있는 다음 문자부터 입력하기』입니다,A 『마우스 포인터가 있는 행의 마지막 문자부터 입력하기』입니다。(일반적)
o, O입력 모드(Insert mode)로 진입하세요:
이는 영어 대문자 o의 크기입니다. o는 현재 마우스 포인터가 있는 아래 행에 새 행을 입력합니다; O는 현재 마우스 포인터가 있는 위 행에 새 행을 입력합니다!(일반적)
r, R대체 모드(Replace mode)로 진입하세요:
r은 마우스 포인터가 있는 문자를 한 번만 대체합니다;R은 마우스 포인터가 있는 텍스트를 대체하고 계속 누르면 ESC까지;(일반적)
위의 키들 중에서, vi 화면의 왼하단에『--INSERT--』 또는『--REPLACE--』과 같은 텍스트가 있습니다. 이름에서 알 수 있듯이 이 행동은 이 파일에 문자를 입력하려고 하는 경우에도 INSERT 또는 REPLACE를 왼하단에 확인해야 입력할 수 있습니다!
[Esc]편집 모드를 나가고 일반 모드로 돌아가기(일반적)

제3부: 일반 모드에서 명령 행 모드로 전환할 수 있는 버튼 설명

명령 행의 저장, 떠나기 등의 명령
:w수정한 데이터를 하드 디스크 파일에 쓰기(일반적)
:w!파일 속성이『읽기専用』일 때, 파일에 강제로 쓰기합니다. 그러나, 실제로 쓸 수 있는지는 그리고 이 파일의 파일 권한과도 관련이 있습니다!
:qvi를 떠나기 (일반적)
:q!파일을 수정했지만 저장하지 않고 싶다면, !를 사용하여 강제로 저장하지 않고 떠나세요.
그惊叹호 (!)는 vi에서 자주『강제적인』 의미를 가지고 있습니다~
:wq저장한 후 떠나기, :wq!이면 강제로 저장한 후 떠나기 (보통 사용)
ZZ대문자 Z입니다! 변경이 있었으면 현재 파일을 저장하고 종료하세요! 저장 및 종료와 같습니다.
ZQ저장하지 않고 강제로 종료합니다. :q!와 같습니다.
:w [filename]편집한 데이터를 다른 파일로 저장합니다(새로 저장과 유사)
:r [filename]데이터를 편집하는 동안 다른 파일의 데이터를 읽어들입니다. 즉,『filename』 이 파일의 내용을 커서 위치 뒤에 추가합니다
:n1,n2 w [filename]n1 까지2 의 내용을 filename이라는 파일로 저장합니다.
:! commandvi를 잠시나도 잠시나도 명령 행 모드로 이동하여 command의 결과를 표시합니다! 예를 들어
『:! ls /home』을 누르면 vi에서 확인할 수 있습니다 /home 아래에 ls로 출력된 파일 정보!
vim 환경의 변경
:set nu행 번호를 표시합니다. 설정 후, 각 행의 접두사에 해당 행 번호가 표시됩니다
:set nonuset nu와 반대로, 행 번호를 취소합니다!

주의하세요, vi/vim에서 숫자는 매우 중요합니다! 숫자는 일반적으로 몇 번 반복할지 의미합니다. 또한, 몇 번째 행으로 이동할지 의미할 수도 있습니다.

예를 들어, 지우고 싶다면 50 행이면 이렇게 됩니다『50dd』입니다! 숫자는 행 앞에 추가됩니다. 예를 들어, 내가 아래로 이동하려면 20 행이면 이렇게 됩니다『20j』이나『20↓』을(를) 누르세요.