반응형

드디어 파일 생성 마지막 명령어인 vi 옵션이다. 리눅스에서 기본적으로 제공되는 텍스트 편집기 중 하나로 명령 모드와 편집 모드로 나뉘며 커맨드 키도 있고, 처음 보면 복잡해 보일 수 있다. 하지만 어찌보면 제일 중요하고, 많이 사용하고, 힘이 강력하다. 하지만 최대한 쉽게 설명해보겠다.


* 기본 형식

vi (옵션) (경로/파일명)

다음 명령어를입력해서 들어가보면 다음과 같이 내용이 나올것이다.

원래는 이렇게 내용이 많고 복잡하지만 쉽게 하기 위해 위쪽 이미지로 진행하겠다.

처음 들어가면 이 사진과 같이 명령모드로 진입이 되어 있다. 이 때 편집을 하기위해 커맨드를 입력해주어야 하는데 그것에 대해서 알아보자.


이동

이동은 보통 방향키로 진행하는 경우가 많다. 하지만 모든 리눅스가  방향키를 지원하는 것은 아니다 때문에 다음 키를 입력해 이동한다.

h : 왼쪽          j : 아래          k : 위           l : 오른쪽


입력모드

이전에 리눅스는 대소문자를 철저하게 구분한다고 한 적이 있다. 그 예시가 될 수도 있을 것 같다.

  • a, A : 커서가 한 칸 다음으로 이동한다. / 커서가 맨 뒤로 이동한다.
  • i, I : 커서가 한 칸 앞으로 이동한다. / 커서가 맨 앞으로 이동한다.
  • o, O : 현재 커서 아래에 새로운 줄을 생성한 후 이동한다. / 현재 커서 위로 새로운 줄을 생성한 후 이동한다.
  • s, S : 현재 커서에 있는 한 글자를 지운다. / 현재 커서가 있는 한 줄을 지운다.

명령 모드

1. set number(se nu) : 행 앞에 숫자를 표시해준다.

2. g, G : 명령모드에서 숫자와 gg를 입력하면 해당 줄로 이동한다. (100gg : 100번째 줄로 이동) / 맨 뒤로 이동한다.

3. x : 현재 커서에 있는 글자를 삭제한다.

4. V : 현재 커서를 기준으로 방향키를 위, 아래로 움직이면 움직이는 만큼의 행이 선택된다. 

5. yy : 현재 커서가 있는 한 줄, 혹은 V를 이용해 지정한 부분을 복사한다.

6. p, P : 커서 다음 줄에 복사한 것을 붙여넣는다. / 커서 위줄에 복사한 것을 붙여넣는다.

7. u : 명령어 실행한 것을 한 단계 이전으로 돌려 놓는다.

8. /(찾고자 하는 단어) : 검색

9. n, N : 검색 시 다음 단어로 이동 / 이전 단어로 이동


앞에 ' : '를 필수로 붙여야한다.

10. :w : 저장

11. :q : 나가기

12. :wq : 저장 및 종료

13. :q! : 강제 종료

14. :.s/변경하고싶은 내용/변경할 내용
14.1 :s/변경하고 싶은 내용/변경할 내용/g : 줄에 있는 모든 공통사항 변경
17. :1co6 : 1번째 줄을 6번째 줄에 복사
18. :d : 지우기

 

이외에도 몇가지가 더 있지만 아래를 참고하면 좋을 것 같다.

 

* 맨 뒷줄을 뜻하는 기호 : $


vi 명령어 사용법 (영어)

출처 : 리눅스 vi --help

 

VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jun 13 2022 00:00:00)

Usage: vim [arguments] [file ..]       edit specified file(s)
   or: vim [arguments] -               read text from stdin
   or: vim [arguments] -t tag          edit file where tag is defined

Arguments:
   -- Only file names after this
   -v Vi mode (like "vi")
   -e Ex mode (like "ex")
   -E Improved Ex mode
   -s Silent (batch) mode (only for "ex")
   -y Easy mode (like "evim", modeless)
   -R Readonly mode (like "view")
   -Z Restricted mode (like "rvim")
   -m Modifications (writing files) not allowed
   -M Modifications in text not allowed
   -b Binary mode
   -C Compatible with Vi: 'compatible'
   -N Not fully Vi compatible: 'nocompatible'
   -V[N][fname] Be verbose [level N] [log messages to fname]
   -n No swap file, use memory only
   -r List swap files and exit
   -r (with file name) Recover crashed session
   -L Same as -r
   -T <terminal> Set terminal type to <terminal>
   --not-a-term Skip warning for input/output not being a terminal
   --ttyfail Exit if input or output is not a terminal
   -u <vimrc> Use <vimrc> instead of any .vimrc
   --noplugin Don't load plugin scripts
   -p[N] Open N tab pages (default: one for each file)
   -o[N] Open N windows (default: one for each file)
   -O[N] Like -o but split vertically
   + Start at end of file
   +<lnum> Start at line <lnum>
   --cmd <command> Execute <command> before loading any vimrc file
   -c <command> Execute <command> after loading the first file
   -S <session> Source file <session> after loading the first file
   -s <scriptin> Read Normal mode commands from file <scriptin>
   -w <scriptout> Append all typed commands to file <scriptout>
   -W <scriptout> Write all typed commands to file <scriptout>
   --clean 'nocompatible', Vim defaults, no plugins, no viminfo
   -h  or  --help Print Help (this message) and exit
   --version Print version information and exit


이미지 파일 없이 요약해서 정리하니 생각보다 내용이 별로 없는 것 같다. 하지만 엄청 중요하니 리눅스를 하게 된다면 얼른 친해져야 할 필요가 있다.

반응형