vi 설정파일= .vimrc
단어를 복사할 경우
1. 복사 - 내가 복사 하고자 하는 문자에 가서 y+w(w는 단어복사의 w임)를 누름.
2. 복사하고자 하는 문자에 가서 p를 누르면 됨.
줄 복사
1. 내가 복사하고자 하는 줄에 가서 y+y를 누름.
2. 복사할 자리에 가서 p를 누름.
지정공간 복사
1. 내가 복사하고자 하는 곳의 시작점에 감.
2. v를 누름
3. 내가 복사를 할 마지막 지점에 감.
4. y를 누름.
5. 복사할 곳에 가서 p를 누름.
뒤로 돌아가기
Undo
u를 누름
앞으로 가기
Redo
Ctrl + r을 누름
replace 모드 - 한글자만 바꿈.
r을 누르면 됨
한 라인을 지우기
d+d를 누름
한문자를 바꾸기
d+w를 누름
한글자를 바꾸기
d+x
*위의 3가지 기능은 전부 잘라내기 기능이 가능하다.
복사하려고 하는 경우 복사하려는 자리에 가서 p를 누름.
3p나 p를 누름.
북마크하기
북마크를 하려는 자리에 간 다음 m을 누르고 아무 글자를 누른다(이글자가 북마크 표식이다.)
북마크 지역으로 돌아가려면 '를 누른다음 북마크 표식 글자를 누른다.
find모드
1번째 방법
/누르고 해당 단어를 누른다.
계속할경우 계속 찾으며 뒤로 넘어간다.
?를 입력하면 앞으로 간다.
2번째방법
해당단어로 이동한다음 shift + *를 누르면 된다.
그다음 n을 누르면 다음으로 넘어가고 shift + n 을 누르면 앞으로 간다.
명령어 모드
(ESC모드에서 :를 입력하면 됨)
wq! - 강제종료
파일이름을 바꾸고 싶을 때 - w 파일이름
해당단어를 바꾸고 싶을 때 %s/바꿀단어/바뀔단어/g
여기서 g를 빼면 한문장에서 맨 처음 한 문자만 바뀐다.
vi로 파일을 두개 이상 만들경우 명령어 모드에서 n을 입력할 경우 다음 페이지로 넘어간다.
prev를 입력할 경우 앞 페이지로 넘어간다.
줄 번호 붙이기
:set nu 또는 :set number
줄 번호 안 붙이기
:set nonumber
Ctag를 설치한 후
해당 단어에 간후
ctrl + ] = 그 변수나 함수등을 선언한 곳으로 감.
ctrl + [ = 뒤로 간다.
자동들여쓰기
:set smartindent
set autoindent " 자동으로 들여쓰기를 한다.
set cindent " C 프로그래밍을 할때 자동으로 들여쓰기를 한다.
set smartindent " 좀더 똑똑한 들여쓰기를 위한 옵션이다.
set textwidth=79 " 만약 79번째 글자를 넘어가면
set wrap " 자동으로 를 삽입하여 다음 줄로 넘어간다.
set nowrapscan " 검색할 때 문서의 끝에서 다시 처음으로 돌아가지 않는다.
set nobackup " 백업 파일을 만들지 않는다.
set visualbell " 키를 잘못눌렀을 때 삑 소리를 내는 대신 번쩍이게 한다.
set ruler " 화면 우측 하단에 현재 커서의 위치(줄,칸)를 보여준다.
set tabstop=4 " Tab을 눌렀을 때 8칸 대신 4칸 이동하도록 한다.
set shiftwidth=4 " 자동 들여쓰기를 할때 4칸 들여쓰도록 한다.
set number
set bs=2
set nocp
colorscheme slate
syntax on
filetype on
if $LANG[0] == 'k' && $LANG1 == 'o'
set fileencoding=korea
endif
set tags=./tags,tags
set tags+=/usr/src/linux/tags
"GUI 이면, 시작시 크기 설정
if has("gui_running")
set guifont=Bitstream\ Vera\ Sans\ Mono\ 10
set lines=89
set co=114
endif
1. 추가패키지설치 vim-enhanced
rpm 패키지가 설치되어 있는지 확인!!
2. vi 환경설정 -> /etc/vimrc설정
set tabstop=2 - 탭간격을 2칸으로 지정
set expandtp - 탭문자를 공백문자로 변환
set visualbell - 사용자 실수를 경고할때 비프임 대신 비주얼 벨로 경고
set nobackup - 백업파일을 생성하지 않음
set autoindent - 자동 들여쓰기 사용
set smartindent - 좀더 지능적인 들여쓰기 사용
set incsearch - 키워드를 입력할때 검색하는 점진 검색 사용
syntax on - 구분 강조 기능 사용
filetype on - 파일의 종류에 따라 구분 강종
colorscheme evening - vi색상테마변경
set background=dark - 어두운 배경색 상용
set hisearch - 검색어 강조 기능 사용0
set ignorecase -검색,편집 치환시에 대소문자 구분하지 않음
3. /etc/bashrc 파일 open
alias vi=vim 항목추가
위의 모든 과정을 수행한 후..
source /etc/vimrc
source /etc/bashrc
라는 명령을 수행하면, 모든 사용자에게 환경이 갖춰짐.
그렇지 않고 개인만 사용하려 한다면.
사용자 디렉터리에 있는 파일을 수정하여 사용!!
----------------------- 추가 ---------------------------
<환경 설정>
. :set
vi에서는 vi 환경변수로 다음의 옵션들을 사용할 수 있는데 :set 명령과 다음의 옵션을 함께
사용하면 그 옵션이 설정되고, 이 옵션앞에 no라는 접두어가 붙으면 그 옵션의 설정이 해제된다.
autoindent modelines showmode
autoprint number slowopen
autowrite novice tabstop=4
beautify optimize taglength=0
directory=/var/tmp paragraphs=IPLPPPQPP LIpplpipnpb tags=tags /usr/lib/tags
edcompatible prompt tagstack
errorbells readonly term=sun-cmd
noexrc redraw terse
flash remap timeout
hardtabs=8 report=5 ttytype=sun-cmd
ignorecase scroll=17 warn
lisp sections=NHSHH HUuhsh+c window=34
list shell=/bin/csh wrapscan
magic shiftwidth=4 wrapmargin=0
mesg showmatch writeany
주요 vi 옵션 설명
옵션 약어 설명
autoident ai 새로운 각 행을 이전 행 또는 새로운 행이 생길 때 커서가 어떤 위치에 자동으로 인덴트되도록 한다. c 프로그래밍할 때 유리하다.
autowrite aw 다른 화일로 옮겨갈 명령을 실행하기 전 또는 쉘로 잠시 나오기 전에
현재 화일을 강제로 저장한다.
ignorecase ic 검색과 대치시 대소문자 구분을 무시한다.
magic 모든 정규식 문자를 사용할 수 있게 한다.
mesg 문서 편집 동안 메시지가 화면에 출력되는 것을 허용한다.
number nu 문서의 행에 행번호를 붙여 화면에 출력한다.
showmatch sm )나 {를 입력할 때마다 자동으로 커서가 대응하는 (나 }로 이동하여
1초동안 머문다.
showmode 상태 행에 현재 편집 모드를 출력한다.
wrapscan ws vi가 매번 화일 전체를 검색하도록 한다. 검색은 항상 현재 행부터
시작해서 화일의 끝으로 진행된다.
예1) 문서의 각행에 행번호를 출력하는 예제
:set number
예2) 행번호 출력을 해제하는 예제
:set nonumber
예3) 현재 vi 모드를 출력하는 예제
:set showmode
:set ai / 해제는 set noai (autoiden의 약자ai)
:set list
vi에서 탭, 줄바꿈 등 표시하고 싶지 않을때는
:set nolist
각 표시에 대한 기호 옵션을 주지 않으면
탭은 ^I (대문자 아이), 줄바꿈은 $로 표시된다.
탭의 크기(길이)에 상관없이 탭하나에 ^I하나만 표시되는데
Bram스러운 처리라 할 수 있겠다.
만약 이러한 캐릭터를 바꾸고 싶다면
:set lcs=tab:>-,eol:%
와 같이하면 되는데, 만약
:set lcs=tab:>-
만 하게되면 탭을 제외한 다른 캐릭터들은 표시되지 않는다.
색상스키마 설정
colorscheme default
colorscheme desert
colorscheme evening
colorscheme slate