본문 바로가기

CS Study/Linux

리눅스 강의 정리 #3

vim 에디터

modes

- normal mode
: Text-based 에서는 GUI 메뉴가 없으므로 short-cut으로 구현해야한다.
- insert mode
- command-line mode
- visual mode

buffer : delete, cut

삭제
vi에서의 삭제 = 임시 버퍼에 잘라내기

붙여넣기 paste

  • p : put, 현재 행에 붙여 넣기.
  • pu : 개행 문자가 포함된 경우에는 현재 행의 아래에 붙여 넣는다

*복사 copy *

  • yy / :y / Y
  • y : 행 단위 복사

undo / redo

  • U : undo (u를 꾹 누르면 모든 수정된 결과가 되돌아감.)
  • CTRL + R : redo

vim

  • vi
    vi 호환의 vim. vim종류중에 가장 적은 기능 (compact vim , tiny vim)
  • vim
    일반적인 vim. vi 추가적인 기능과 플러그인 사용이 가능. (enhanced vim으로 프로그래밍에도 많이 사용된다)
  • vimx
    가장 많은 기능을 가진 vim. vim + clipboard, X window clipboard 기능이 포함된다.

vi, vim, vimx : package name

레드햇 계열 데비안 계열이 서로 패키지 이름과 실행 파일이 다르다. 데비안 계열은 더 많은 vim 베리에이션이 존재한다.

vim error

파일을 중복해서 오픈한 경우 발생할수있는 에러의 종류 2가지

CASE 1

파일을 다른 터미널에서 동시에 열었다면 '스왑 파일이 이미 존재합니다'라는 에러 메세지를 볼 수 있다. vim이 swap 파일을 이용해서 작업을 하기 때문이다. 예를 들어, CTRL + Z 명령어로 프로세스를 stop 시키고 다른 작업을 하다가 이런 에러가 생길수도 있다. 그래서 어떻게 해결해야하는지 알아야 한다.
still running 은 해당 프로세스가 살아있다는 뜻으로 서로 같은 작업을 중복했다는 뜻이다. 서로 한 파일을 경쟁적으로 점유하는 상태임을 알 수 있다.
이 경우 read only 혹은 quit 명령 으로 해결할수있다.

CASE 2

네트워크가 끊어졌을때 에러 메세지에서 still running이 사라진다. 이때는 해당 프로세스가 작업하다가 어떤 이유로 네트워크 라인이 끊어졌을수도있고 프로세스 자체의 버그때문에 프로세스가 강제로 종료됐을수도있다. → (R)ecover 이후 delete하는 방식으로 해결한다
vim crash로 swapfile이 제거되지 못한 경우 : 복구가 잘못됐을때를 생각해서 swap 파일은 직접 제거 하지 않는 이상 남아있다. 이미 복구하고 파일을 열었는데 에러 페이지가 또 나오면 → (D)elete명령어


file 관련 기능

buffer, register

  • buffer : 파일을 편집하기 위한 임시 공간
  • register : 텍스트 일부를 저장하고 있는 임시 공간 (ctrl+c, ctrl+v 이 데이터는 레지스터에 있다)

    파일 저장

  • :w [filename]
  • :sav file
  • :up
  • :x : up + quit (일반모드에서는 ZZ) 저장하지않고 종료

    netrw

    : vim으로 디렉터리 열기

창 분할 (split)

  • 수평 : <CTRL + W> s / :sp [filename]
  • 수직 : <>
    💡여기서 <CTRL + W> 하고 hjkl 이동키 쓰면 창 방향 마음대로 바꿀수있다!
  • diff : 소스 코드 비교할때, 설정파일 비교할때 사용하면 유용하다

'CS Study > Linux' 카테고리의 다른 글

리눅스 강의 정리 #4  (0) 2021.02.07
리눅스 강의 정리 #2  (0) 2021.01.31