[vi edit에서 줄번호 자동으로 보이기]
vim 초기화 파일에 명령어 추가
vi ~/.vimrc
set number (줄번호 숨길때 set nonumber, set nonu)
그 밖의 들여쓰기 기능들...
set autoindent |
자동 들여쓰기가 되도록 설정 |
set cindent |
C 언어 파일 수정시 들여쓰기가 되도록 설정 |
set tabstop=n (숫자) |
탭 넓이를 n 만큼 띄움 |
set shiftwidth=n (숫자) |
들여쓰기 간격을 n 만큼 띄움 |
syntax on (라즈베리파이 안될 수 있음) |
구문강조 표시 설정 |
set showmatch |
선택된 괄호와 짝을 이루는 괄호에 대해 강조 |
set ignorecase |
대소문자 구별없이 검색하도록 설정 |
set number |
줄번호를 표시 |
[자주 쓰는 명령어 요약]
1. 복사및붙여넣기
'V' (비주얼모드)에서 블럭지정 후 y(복사), x(잘라내기) 후 p로 붙여넣는다.
Ctrl+v 는 글자단위 선택
2. 해당 문자열 찾고 바꾸기
/찾으려는 문자열 입력한후 엔터
n을 부르면 문자열을 매칭해가면 찾을수 있음.
:s/aaa/bbb 엔터 현재줄의 aaa를 bbb로 교체
:%s/aaa/bbb 엔터 문서 전체에서 old를 new로 교체
3. 저장후 종료
:w 저장
:w! 저장후 편집종료
:q 저장하지 않고 종료
:q! 저장하지 않고 에디터 강제종료
:e 다른파일 편집
:e! 편집내용 저장하지 않고 최종 저장된 상태로 파일열기
4. 입력
i 문자앞에서부터 입력
cw 커서 위치의 한 단어 수정
c 커서 위치부터 줄의 끝까지 수정
a Cursor 다음에 text 추가
A 해당 라인의 끝에 text 추가
5. 되돌리기 되살리기
u 되돌리기
ctrl+r 되살리기
5. 복사
:1,3 co 5
:4,6 m 8
6. 줄 올리기
J
VI 에디터 명령어 표
1. 시작 |
|
vi file |
vi를 시작하여 지정한 파일 편집 |
vi -R file |
읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집 |
view file |
읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집 |
2. 종료 |
|
:wq |
데이터를 저장하고 종료 |
:q! |
데이터를 저장하지 않고 종료 |
3. 시스템이 다운된 후에 되살리기 |
|
vi -r |
되살릴 수 있는 모든 파일 이름 보여주기 |
vi -r file |
vi를 시작하여 지정한 파일 되살리기 |
4. 디스플레이 제어하기 |
|
^L |
현재 화면을 다시 디스플레이하기 |
:set number |
내부 줄 번호 디스플레이 |
:set nonumber |
배부 줄 번호 디스플레이 않기 |
5. 마지막으로 지운 것 복사하기 |
|
p |
마지막으로 지워진 것을 커서의 뒤/아래에 삽입 |
P |
마지막으로 지워진 것을 커서의 앞/위에 삽입 |
xp |
두 문자를 바꿈 |
deep |
두 단어를 바꿈 |
ddp |
두 줄을 바꿈 |
6. 패턴 검색 |
|
/rexp |
지정된 정규 표현식에 대해 앞으로 이동 |
/ |
이전의 패턴에 대해 앞으로 검색을 반복 |
?rexp |
지정된 정규 표현식에 대해 뒤로 이동 |
? |
이전의 패턴에 대해 뒤로 검색을 반복 |
n |
/나 ?명령에 대해 같은 방향으로 반복 |
N |
/나 ?명령에 대해 반대 방향으로 반복 |
7. 약어의 사용 |
|
:ab short long |
short를 long에 대한 약어로 변경 |
:ab |
현재 약어 목록을 표시 |
:una short |
약어 short를 표시 |
8. 줄 길이의 조정 |
|
r <Return> |
문자를 뉴라인으로 변경 |
J |
줄의 결합 |
:set wm=n |
오른쪽으로 n문자 위치에서 자동적으로 줄 나눔 |
9. 커서 이동 |
|
h<Left> |
커서를 한 칸 왼쪽으로 이동 |
j<Down> |
커서를 한 줄 아래로 이동 |
k<Up> |
커서를 한 줄 위로 이동 |
l<Right> |
커서를 한 칸 오른쪽으로 이동 |
<Backspace> |
커서를 한 칸 왼쪽으로 이동 |
<Space> |
커서를 한 칸 오른쪽으로 이동 |
- |
커서를 이전 줄의 처음으로 이동 |
+ |
커서를 다음 줄의 처음으로 이동 |
<Return> |
커서를 다음 줄의 처음으로 이동 |
0 |
커서를 현재 줄의 맨 앞으로 이동 |
$ |
커서를 현재 줄의 맨 끝으로 이동 |
^ |
커서를 현재 줄의 첫글자(공백이나 탭이 아닌)로 이동 |
w |
커서를 다음 단어의 첫 글자로 이동 |
e |
커서를 다음 단어의 끝 글자로 이동 |
b |
커서를 이전 단어의 첫 글자로 이동 |
W |
w와 같음(문장 부호 무시) |
E |
e와 같음(문장 부호 무시) |
B |
b와 같음(문장 부호 무시) |
( |
다음 문장의 처음으로 이동 |
) |
이전 문장의 처음으로 이동 |
{ |
다음 문단의 처음으로 이동 |
} |
이전 문단의 처음으로 이동 |
H |
커서를 화면 맨 위로 이동 |
M |
커서를 중간으로 이동 |
L |
커서를 맨 아래로 이동 |
10. 편집 버퍼를 통한 이동 |
|
^F |
한 화면 아래로 이동 |
^B |
한 화면 위로 이동 |
n^F |
n화면 아래로 이동 |
n^B |
n화면 위로 이동 |
^D |
반 화면 아래로 이동 |
^U |
반 화면 위로 이동 |
n^D |
n줄만큼 아래로 이동 |
n^U |
n줄만큼 위로 이동 |
11. 셸 명령 실행 |
|
:!command |
vi를 중단하고 지정한 셸 명령을 실행 |
:!! |
vi를 중단하고 이전의 셸 명령을 실행 |
:sh |
vi를 중단하고 셸을 실행 |
:!csh |
vi를 중단하고 새로운 C-셸을 실행 |
12. 패턴에 의한 치환 |
|
:s/pattern/replace/ |
현재 줄의 치환 |
:lines/pattern/replace/ |
지정한 줄의 치환 |
:line,lines/pattern/replace/ |
지정한 범위의 치환 |
:%s/pattern/replace/ |
모든 줄의 치환 |
13. 데이터 읽기 |
|
:liner file |
file의 내용을 지정한 줄 다음에 삽입 |
:r file |
file의 내용을 현재의 줄 다음에 삽입 |
:liner !command |
command의 결과를 지정한 줄 다음에 삽입 |
:r !command |
command의 결과를 현재의 줄 다음에 삽입 |
:r !look pattern |
지정한 pattern으로 시작된 단어 삽입 |
14. 정규 표현식을 사용하기 위한 특수 기호 |
|
. |
뉴라인을 제외한 모든 단일 문자와 대응 |
* |
영 또는 그 이상의 선행 문자와 대응 |
^ |
줄의 시작과 대응 |
$ |
줄의 끝과 대응 |
\< |
단어의 시작과 대응 |
\> |
단어의 끝과 대응 |
[ ] |
묶여진 문자중의 하나와 대응 |
[^ ] |
묶여진 문자를 제외한 아무것하고나 대응 |
\ |
이어지는 기호를 문자 그대로 해석 |
15. 줄 번호 |
|
nG |
줄번호 n으로 건너뛰기 |
1G |
편집 버퍼의 첫 줄로 건너뛰기 |
G |
편집 버퍼의 마지막 줄로 건너뛰기 |
:map g lG |
g가 lG와 같도록 매크로 정의 |
16. 삽입 |
|
i |
입력 모드로 전환, 커서 위치 앞에서 삽입 |
a |
입력 모드로 전환, 커서 위치 뒤에서 삽입 |
I |
입력 모드로 전환, 현재 줄의 앞에 삽입 |
A |
입력 모드로 전환, 현재 줄의 끝에 삽입 |
o |
입력 모드로 전환, 현재 줄의 아래에 전개 |
O |
입력 모드로 전환, 현재 줄의 위에 전개 |
17. 편집하고 있는 파일을 바꾸기 |
|
:e file |
지정한 파일의 편집 |
:e! file |
지정한 파일의 편집, 자동 점검의 생략 |
18. 내용 고치기 |
|
r |
단지 한 글자만 변경(입력 모드로 바뀌지 않음) |
R |
입력하는 대로 겹쳐 써서 변경 |
s |
삽입에 의해 한 단어의 변경 |
C |
커서의 위치로부터 줄 끝까지 삽입에 의한 변경 |
cc |
전체 줄을 삽입에 의한 변경 |
S |
전체 줄을 삽입에 의한 변경 |
cmove |
커서부터 move까지 삽입에 의해 변경 |
~ |
대,소문자 바꾸기 |
19. 고치기의 취소 또는 반복 |
|
u |
편집 버퍼를 수정했던 마지막 명령을 취소 |
U |
현재 줄을 저장 |
. |
편집 버퍼를 수정했던 마지막 명령 반복 |
20. 문자 삭제 |
|
x |
커서가 있는 문자 삭제 |
X |
커서의 왼쪽 문자 삭제 |
D |
커서부터 줄의 끝까지 삭제 |
dd |
현재 줄의 전체 삭제 |
dmove |
커서부터 move까지 삭제 |
dG |
커서부터 편집 버퍼의 끝까지 삭제 |
d1G |
커서부터 편집 버퍼의 맨 앞까지 삭제 |
:lined |
지정한 줄의 삭제 |
:line, lined |
지정한 범위의 삭제 |
21. 여러 줄의 복사와 이동 |
|
:linecotarget |
지정한 줄을 복사하여 target 줄 밑에 삽입 |
:line, linecotarget |
지정한 범위를 복사하여 target 줄 밑에 삽입 |
:linemtarget |
지정한 줄로 이동하여 target 줄 밑에 삽입 |
:line, linemtarget |
지정한 범위로 이동하여target 줄 밑에 삽입 |
22. 데이터를 처리하기 위한 셸 명령의 사용 |
|
n!!command |
n번 줄에서 command의 실행 |
!move command |
커서부터 move까지 command 실행 |
!move fmt |
커서부터 move까지 줄들을 형식 맞추기 |
23. 데이터 저장하기 |
|
:w |
원래의 파일로 데이터를 저장 |
:w file |
지정한 파일로 데이터를 저장 |
:w>> file |
지정한 파일에 데이터를 추가 |
'[ 충남인력개발원 ] (2019) > ┗C' 카테고리의 다른 글
리눅스 apt-get 의 설정들 (0) | 2020.01.07 |
---|---|
auto static extern 해드의 속성들 (0) | 2019.11.27 |
C언어 헤더파일 위치 /usr/include (0) | 2019.11.27 |
Ubuntu 공부중 이해안가는거 2019.11.19 (0) | 2019.11.19 |