Linux
05 Text Editors
원격 쉘을 통해 텍스트 파일을 편집해야할 때 : 일부 서버는 GUI를 제공하지 않음.
VI
콘솔 기반 텍스트 편집기
파일이 있는 경우 파일의 권한에 따라 열린다.
파일이 없으면 가상으로 열린다. 나중에 저장할때 파일 생성 가능
vi + filename
마지막줄에 커서
vi +n filename
n번째줄에 커서
vi +/pat filename
패턴이 처음 발견되는 라인에 커서
때로는 vi가 중단되어 파일을 제대로 저장할 수 없는 경우가 있다.
Swap file이라는게 생기는데 변경한 내용을 저장 같은 디렉토리 내에 .으로 시작하는 숨겨진 파일
vi -r 옵션 // -R 과 확실하게 구분 -R은 read only
-r 은 모든 스왑파일 리스트
vi에는 3가지 모드
- Insert mode : Editing text
i - just before the current cursor position
a - just after the current cursor position
o - into a new line below current cursor
I - at the beginning of the current line
A - at the end of the current line
O - into a new line above current cursor
- Command mode : Performing special functions, Initial mode
:w filename
:w!
:q
:wq
:q!
ZZ
:n
:$ 마지막라인로이동
:$= 총 라인 출력
:.= 현재 라인 출력
H 맨 처음 라인으로
G 맨 끝라인으로
M 화면 중간라인으로
u : undo last changes in the last insert mode
^r : redo last changes which were undone.
. : repeat the last command
x 한문자삭제
dw 현재커서부터 단어끝까지 삭제
v 문자별로 선택하기
V 라인별로 선택하기
C 현재커서부터 라인끝까지 replace
S 현재라인 전부 replace
- Line mode : Special mode to execute more complicated functions
Line mode 에서 input mode 로는 transition이 없음
: / ? Command mode에서 Last Line Mode 로
^ : caret(캐럿) - 그라인의 처음으로
:[begin,end]s/pattern1/pattern2/flag : flag 가 g이면 모든 경우, c 이면 인터랙티브
% : represent the entire file
$ : represent the last line
. : represent the first line
Without [begin,end], the command is applied in the current line
라인모드에서 텍스트 서칭
/단어 정방향
?단어 역방향
:1,. w filename 1부터 현재 줄까지 파일네임에 저장
:1,. w >> filename 파일네임 뒤로 추가
라인모드
:r filename //read
:e filename //edit
:r! tail -1 /etc/passwd 쉘명령어를 수행해서 내용을 파일로가져옴
set list 설정을통해 캐리지리턴 줄바꿈 부분 확인가능
:set tabstop=# (#값에따라 간격 수정가능)
~/.exrc 파일내용에 환경설정을 수정하면 기본값 변경가능 (ex 탭간격)
과제에 사용되는 명령어
wc print new line, word, and byte counts for each file
:3 3번째 라인으로 커서 이동
O 현재 커서 위로 새로운 라인추가
j 한 라인 아래로 커서 이동
J 현재 라인과 아래 라인 결합
yy 현재라인 복사
G 마지막 라인으로 이동
p 현재 라인 아래에 붙여넣기
dd 현재라인삭제
:wq 저장하고 나가기
/pigs pigs 단어 검색 (n누르면 마지막 서치 반복)
:1,$s/pigs/lambs/g 첫번째라인부터 마지막라인까지 모든경우의
pigs패턴을 lambs패턴으로 replace
ZZ 나가기