###1. 파일 관련 기능

  • 파일 열기
  • 저장하기
  • 파일브라우저(netrw)

##1. 용어정의

#1. vim terminology (vim 용어)

 1) buffer: 파일 편집 위한 임시 공간

==> 편집하는거 자체가 buffer이다. 파일명없이 vim 실행 시 이름 없는 buffer가 작업이 되고, 파일을 저장하면, buffer가 해당 파일에 저장되어 이름을 가지게된다.

 

 2)register: 텍스트 일부를 저장하고 있는 임시 공간  

 ==> dd 문자삭제하여,  p로 붙여넣기 할때 그 문자를 저장하는 임시공간

 

#2 vim에서 다른 파일을 편집하려는 경우

명령어 설 명
: e [filename] filename을 편집모드로 오픈
filename 이  생략되면 현재 파일을 다시 오픈
:e #[count] count번째 파일을 오픈
count가 생략되면 바로 이전 파일이다.
: find filename filename에 해당하는 파일을 검색하여 오픈.
매칭결과가 복수개이면 에러메시지를 출력.
CTRL-^ 명령어 단축키로서 ":e #"과 동일

** e: editor

 

** 실수로 :E  눌렀는데 디렉토리로 트리로 가는구나... 좋다 !

 

:find ~/tmp    //절대경로

 Ctrl+^(6)  은 이전 편집 창으로 돌아가기

 

 

#3 복수개 파일 열기

vim file1 file2 file3

 

:n   => next

:N   => back (반대방향)

 

#4

명령어 설명
:q[!] 현재 창(window) 종료
!는 강제종료(저장하지 않고 종료할 때 유용함)
:qa[!] (quit all) 모든 창을 종료
복수개의 창을 열고 있을 때 유용.
:wq 저장하면서 종료      : x  를 주로 사용 또는 입력창에서 ZZ
:wqa 저장하면서 종료하되 모든 창에 대해 종료

 

a: all

 

#5  파일저장

명령어 설명
: w [filename] filename이 지정되면 해당 파일에 쓰기를 지정(복사본)
filename이 생략되면 현재 파일에 쓰기를 지정
사본을 만든 경우에는 편집중인 파일은 원래 파일로 편집한다.
:sav file (saveas) 현재 파일을 다른 이름으로 저장.
편집중인 파일도 새로 저장된 파일로 교채됨.
:up 변경된 점이 있는 경우만 ":w" 명령어를 실행.  up:업데이트
:x up+quit   (up : 업데이트)
(일반모드는 ZZ 로~)

 

#6 파일저장의 예

명령어 설 명
:10,50w  history 10~50번 행을  history라는 파일로 저장.
:.,+10w history 현재행 ~ 아래로 10번행을 history 파일에 저장
:10,$w history 10 ~ 끝까지.. history 파일에 저장
:%w history 전체를 history파일로 저장, 즉 %는 있으나 없으나 결과는 동일

 

#7 vim으로 디렉터리 열기

명령모드

:e .   : 아까 내가 발견한 E 입력해서 디렉터리 연 것처럼 동일 기능.

 

e . == E   

Ctrl^  은 이전에 실행한 곳으로 가는 명령어 적용가능.

 

디렉토리창에서 F1 키는 help창 뜸.

 

디렉토리창에서의 명령어

netrw(con't)   디렉토리 창에서 아래 명령어 적용.  // netrw(con't)  디렉토리창 == 파일탐색기

명령어 설명
<Enter> 파일을 현재 창에 열어준다
i 파일 표시방법 변경(한줄, 파일정보도 함께, 와이드형식, 트리방식)
s 정렬방식을 바꿔줌(이름 순,시간 순,크기 순)
o 커서위치의 파일을 수평 분할된 새창으로 열어줌
v 커서 위치의 파일을 수직 분할된 새 창으로 열어줌
p 커서위치의 파일을 미리보기 창으로 열어줌

(미리보기 창닫기는 <CTRL-W> z 나 :pclose를 사용
t 새로운 탭으로 분할하여 열어줌
- 상위 디렉토리로 이동

ctrl ^ (6번)  왔다갔다하는 명령어 .

 

 

 

###2. 복수의 파일 다루기

  • 분할창( split window)
  • 탭(tab page)

 

#1 

수평분할

<CTRL-W> s

:sp [file]

 

필자는 :sp 방식 선호 , ctrl-w  s는 손가락아프고 잘 안먹힘..

 

 

수직분할

<CTRL-W> v

:vs [file]

 

#2 창분할, 생성 명령

명령어 설명
:[#]sp [파일명]
[#]CTRL-W s
상하로 창을 분할. 파일명을 생략하면 현재 파일을 의미.
#는 분할창의 크기(생략시 이전 창의 절반크기)
:[#]vs [파일명]
[#]CTRL-W v
좌우로 창 분할
:[#]new
[#]CTRL-W n
상하로 분할하고 위쪽에 새로운 창 만듦.
:[#]vnew
[#]CTRL-W v
좌우로 창 분할하고, 왼쪽에 새로운 창을 만듦

 

* vim 실행 옵션: -o , -O   Vim  파일 실행할 때 애초에 분할한 상태에서 열어주는 역할.

 

O : 수직분할,  -o  수평분할 

vim FILE1 -O FILE2 

 

#3 창 이동 관련 명령

명령어 설명
CTRL-W CTRL-방향키
CTRL-W 방향키 (창 3개 이상인 경우)
방향키 h,j,k,l 이나 화살표 키 사용가능
CTRL-W CTRL-W 
CTRL-W w (메뉴얼 볼때)
현재 창에서 오른쪽 방향으로 이동
오른쪽 끝 창이면 아래로 내려간다.
CTRL-W CTRL-P
CTRL-W p
바로 이전에 사용한 창으로 이동

 

#4 창 크기 관련 명령

명령어 설명
CTRL-W= 모든 창 크기 동일하게 조절
CTRL-W [#]+ #크기만큼  크기 키움( #을 생략하면 1을 키움)
CTRL-W[#]- #크기만큼 크기 줄임(#생략시 1을 줄임)

 

diff

 

편집기안에서 가능

해당 블로그참고‘:

비교할 코드 창에 추가로 만들어서 비교 기준 창에서 :diffthis

https://danguria.tistory.com/210

 

vim에서 diff 사용하기

커맨드창에서 두개의 파일을 비교 하는 방법은 vimdiff a.c b.c 이렇게 바로 실행 할 수도 있고, 아래와 같이 실행 할 수도 있따.(수평 분할) vim a.c :diffs b.c (:diffsplit b.c) 수직 분할하려 비교 하려면

danguria.tistory.com

해당 블로그 유익한 글.(특히 이미 에디터 켜진 상태에서 diff 하는 방식 있음)

 

do (get) , dp(put) 통해 하나로 통일 시키는 merge 가능

 

 

#5 분할 창의 단점

1) 분할 할 때마다 원래 창의 크기가 줄어듦  => 탭 페이지 기능이 필요함.

 

#6 탭 열기 vim  실행 옵션 : -p

복수의 파일을 탭으로 열기) vim -p file1 file 2 file3

 

명령어 설명
:[#]tabe[dit] file #번째 탭에 파일을 연다. #을 생략 시 현재 탭 뒤에 생성
e:editor   (editor생략해서  tabe 로 씀)
:[#]tabnew file #번째 위치에 비어있는 탭을 만듦
:[#]tabc[lose] #번째 탭을 닫음. #을 생략하면 현재 탭을 닫음.

 

** o 나 O는 수직/수평분할.

 

#7 tabpage cmd(con't)

1) 탭 사이 이동명령(tabnext, tabprev)는 key map[후술]이 편함

 

명령어 설명
:[#]tabn[ext]
[#]gt
[#]<CTRL-PageDown>
다음 탭으로 이동하며, 일반 모드의 gt와 동일.
#에 숫자를 지정하면 탭 번호 지정
:[#]tabp[revious]
[#]gT
[#]<CTRL-PageUp>
이전 탭으로 이동하며 일반 모드의 gT와 동일
#에 숫자 지정 시 반복수가 지정됨
:tabm[ove] [#] #번쨰 탭으로 현재 탭 이동 시킴(0부터 시작)
#이 생략 되면 가장 오른쪽으로 이동시킴.

 

###3 Buiffer

  • buffers 목록
  • goto

##1. vim buffer =file

하기에 명령모드에서 버퍼 목록 확인가능

:files

:buffers

이 둘은 현재 버퍼 목록을 출력한다.

 

버퍼는 저장이 되기 전 anonymous(이름 없는) 공간이다.

 

#2 파일 번호에 상태 플래그 (flags)

기호 의미
% 현재 편집 중인 버퍼
# 바로 이전에 열었던 버퍼 혹은 다음에 열도록 예비된 버퍼
ctrl-^ 를 누르면 #이 표시된 파일이 열림.
a 활성화된 버퍼(현재 화면에 보이는 버퍼)
창 분할 기능을 쓰는 경우, 여러 파일에  a 표시가 나타남.
+ 변경된 부분이 있는 버퍼

#3 커서 아래의 파일명을 인식하여 오픈 하는 기능:ㅣ

gf(이동),  CTRL-^ (이전파일로 되돌아가기)

C파일을 만들어서  VIM에디터내에서 헤더파일에 커서 올려놓고 gf 를 누르면 하기와 같이 정의로 가게 된다

원래 파일로 돌아오는 명령   ctrl+^

 

#4 커서 위 파일 열기 명령어

명령어 설명
gf 커서 위치의 파일명을 인식해서 열어줌
<CTRL-W> f 커서 위치의 파일명을 분할된 창에 열어줌
<CTRL-W> gf 커서 위치의 파일명을 탭에 열어줌
<CTRL-^> 이전 파일로 되돌아감.

 

해당 내용은  프로그래머스 리눅스 강의 김선영 선생님의 강의를 들으며 기록했습니다.

+ Recent posts