티스토리 뷰

리눅스linux(ubutu)

리눅스 문서편집기 vi

세상모든방법 2015. 8. 19. 17:53



vi 시작하기 

vi [파일명]

지정한 파일을 편집합니다. 파일명을 지정하지 않으면 빈 파일이 열리고(파일명을 지정해도 그 파일이없으면 빈파일 열림), 이 빈 파일의 파일명은 별도로 지정할 수 있습니다.

빈파일을 만들어 보겠습니다




명령모드:

-입력모드로 가기 i,I,a,A,o,O

i : 커서 앞에 입력한다(현재 커서 자리에 입력한다).

I : 커서가 위치한 행의 첫 칼럼으로 이동하여 입력한다.

a: 커서 뒤에 입력한다(현재 커서 다음 자리에 입력한다)

A: 커서가 위치한 행의 마지막 칼럼으로 이동하여 입력한다.

o: 커서가 위치한 행의 다음 행에 입력한다.

O:커서가 위치한 행의 앞 행에 입력한다.

-커서이동 명령 키

h,j,k,l : 커서를 왼쪽,아래,위,오른쪽 으로 이동시킵니다.(방향키로도 가능)

^,0(숫자)   ,$   : 커서를 현재 행의 처음,마지막으로 이동시킵니다.

-  ,+ 또는Enter키  : 커서를 (앞,다음)행의 처음으로 이동합니다. 

H, M, L        : 커서를 화면의 (맨윗행,중간행,맨아래)으로 이동합니다,

w b         : 커서를 (다음,앞)단어의 첫글자로 이동합니다

e          :커서를 단어의 마지막 글자로 이동합니다

-화면 이동하기

PgUp,PgDn    :페이지를 위아래로 이동시킵니다.

^u             :반화면 위로

^d             :반화면 아래로

^y             :화면을 한 행만 위로

^e             :화면을 한 행만 아래로

G            : 파일의 마지막 행으로 이동한다.

행번호G      :지정한 행 번호로 이동한다

:행번호       :지정한 행 번호로 이동한다(마지막 행 모드)

:$           :파일의 마지막 행으로 이동한다(마지막 행 모드)

-내용 수정하기

r            :커서가 위치한 글자를 다른 글자로 수정한다.

cw,#cw    :  커서 위치부터 현재 단어의 끝까지 수정한다.#위치에는 수정할              단어의 수를 지정한다.

s,#s       :한글자 수정하고 추가로입력한다 #은 수정할 글자의 갯수를 쓰면됩니                 다. 수정후 입력됩니다.

cc        :커서가 위치한 행의 내용을 모두 수정합니다.

C         :커서 위치부터 행의 끝까지 수정합니다.

-내용 삭제하기

x,#x        :커서 위치의 글자 삭제.#에는 삭제할 글자수 지정.

dw,#dw    :커서 위치의 단어를 삭제.

dd,#dd    :커서 위치의 행을 삭제한다. 

D         :커서 위치부터 행의 끝까지 삭제

-명령 취소하기

u        :명령을 취소한다.

U        :해당 행에서 한 모든 명령을 취소한다.

:e!       :마지막으로 저장한 내용 이후의 것을 버리고 새로 작업한다.

-복사 또는 잘라서 붙이기

yy,#yy      :커서가 위치한 행을 복사한다. 

p          : 커서가 위치한 행의 아래쪽에 붙입니다.

P          : 커서가 위치한 행의 위쪽에 붙입니다.

dd,#dd     : 잘라내기 기능입니다.

(네임드 버퍼를 사용한 복사와 붙여넣기 "ㅁyy 는 복사 "ㅁdd 는 붙여넣기

ㅁ는 a,b,c,d,.....1,2,3,4,....이 될 수 있습니다)

-검색하기

/검색어    :검색어를 찾습니다.(아래방향)

?검색어   :검색어를 찾습니다.(위방향)

n        : 원래 찾던 방향으로 다음 문자열을 검색합니다.

N       : 원래 찾던 방향 반대방향으로 다음 문자열을 검색합니다.

-바꾸기

:s/문자열1/문자열2/    :커서가 위치한 행에서 첫번째로 나오는 물자열1을 문자열

2로 바꿉니다.

:%s/문자열1/문자열2/g :파일 전체에서 모든 문자열1을 문자열2로 바꿉니다.

:#,#s/문자열1/문자열2/ :범위 내 모든 행의 각 행에서 첫번째로 나오는 문자열1을

문자열2로 바꿉니다.

:#,#s/문자열1/문자열2/g :범위 내 모든 행에서 문자열1을 문자열2로 바꿉니다.

:#,#s/문자열1/문자열2/gc :번위 내 모든 행에서 문자열1을 문자열2로 바꿀 때 수

정할지 여부를 묻습니다. 

-기타명령

ctrl+l        : 현재 화면을 다시 출력합니다.

ctrl+g       : 현재 행 번호를 마지막 행에 출력합니다.

ctrl+j       : 현재 행과 아랫행을 연결하여 하나의 행으로 만듭니다.

.          :  바로 직전에 했던 명령을 반복합니다.


마지막행모드 전환 :  : , / , ?(마지막 행 모드에서 명령을 입력하고 실행하려면                   반드시 enter키를 눌러야 한다.)

ZZ(대문자) : 작업한 내용을 저장하고 vi를 종료합니다.


입력모드:

-명령모드로 가기 esc키

-내용 삭제하기

Back Space키나 Delete키

마지막 행 모드:

-저장하기

:q  :                    vi에서 작업한 것이 없을 때 그냥 종료한다.

:q!    :                  작업한 내용을 저장하지 않고 종료한다.

:w [파일명] :    작업한 내용을 저장만 한다. 파일명을 지정하면 새 파일로                             저장한다.

:wq,:wq!     : 작업한 내용을 저장하고 vi를 종료한다

(!는 강제의 의미입니다. 파일을 수정했는데 종료하려고 :q를 입력하면 파일이 수정되었다는 메시지를 출력하고 종료되지 않습니다. 그러나 !를 이어서 입력하면 수정한 내용을 저장하지 않고 강제로 종료합니다.)

-명령모드로 가기 : Enter키,Esc키

-복사,붙이기,잘라내기

:#y    :지정한 행을 복사합니다.

:#,#y :ex):2,5y 2~5행을 복사하는 명령

:#d    :지정한 행을 잘라냅니다.

:#,#d  :범위를 지정해 행을 잘라냅니다.

:pu    :현재 행 다음의 버퍼의 내용을 붙입니다.

:#pu  :지정한 행 다음에 버퍼의 내용을 붙입니다.

-범위 지정

:1,$또는%    : 1행부터 마지막 행까지 지정합니다.

:1,.          : 1행부터 커서가 있는행까지 지정합니다.

:.,$          : 커서부터 마지막행까지 지정합니다.

:,-#        : 현재 행과 이전#번째 행까지 지정합니다.

:#,#        : #행부터#행까지 지정합니다.

-파일 읽어오기,파일 편집하기

:r 파일명   : 지정한 파일을 읽어들여 현재 커서 위치에 삽입합니다.

:e 파일명  : 지정한 파일로 전환합니다.(기존 파일을 :w로 저장한 후에 실행해야 

합니다.

:n        : vi 시작 시 여러 파일을 지정했을 경우 다음 파일로 작업을 이동합니다.

-vi에서 셸 명령 사용하기

:! 셸명령 : vi 작업을 잠시 중단하고 셸 명령을 실행합니다( vi로 돌아오려면 Enter

를 입력합니다 

:sh      : vi 를 잠시 빠져나가 셸 명령을 실행합니다(vi 로 돌아오려면 exit명령어를

입력합니다.

-vi환경설정

:set nu     :파일 내용의 각 행에 행번호를 표시합니다.(저장되지는 않습니다.)

:set nonu  :행 번호를 감춥니다.

:set list    :눈에 안보이는 특수문자를 표시합니다.

:set nolist :특수 문자를 지웁니다.

:set showmode :현재 모드를 표시합니다.

:set         :set으로 설정한 모든 vi 환경 설정 값을 출력합니다.

:set all     : 모든 vi 환경 변수와 현재값을 출력합니다.


vi환경설정은 사용자 홈 디렉터리에 .exrc 파일로 저장해서 설정할 수 있습니다.

이 파일이 있을경우 vi를 시작할 때마다 확인하므로 모든 파일에 동일하게 적용할 수 있습니다.

.exrc 파일을 만들어 보겠습니다.

(제가 실수 했는데 홈 디렉토리 안에 만들어야합니다. 즉 .exrc를 ohhyungyu 디렉토리 안에다 만들어야합니다!)

ls 명령만으로는 안보이는것을 알 수 있습니다.

여기서 주의할 점은 .exrc 파일은 기타접속자에게는 읽기 권한만 부여되어 있는 상태입니다 (http://ee6160.tistory.com/9 참고)


따라서 아래와 같이 파일을 열고 수정하면 에러가 발생합니다

 E45: 'readonly' option is set (add ! to override)

읽기 전용 파일이라는 것입니다.

No write since last change 혹시 이런 에러가 난다면 이것은 저장을 먼저 하고 종료를 안해서 나오는 에러입니다.


그래서 결론은 .exrc 파일은 슈퍼유저로 접은을 해서 수정해야합니다.

수정후 파일을 확인하겠습니다.



그러면 다음과같이 vi안에서 설정을 안해도 됩니다.







'리눅스linux(ubutu)' 카테고리의 다른 글

리눅스 배시셸 명령어 echo  (0) 2015.08.21
리눅스 배시셸 명령어 file  (0) 2015.08.21
리눅스명령어 whereis,which  (0) 2015.08.19
리눅스명령어 find  (0) 2015.08.19
리눅스명령어 grep  (0) 2015.08.19
댓글
공지사항
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31