'Computer/vi에디터'에 해당되는 글 2건

  1. 2014.01.04 검색 및 치환
  2. 2014.01.04 커서 이동, 입력, 삭제
posted by dalnimbest 2014. 1. 4. 12:14

 

명령어모드에서 실행해야한다. 현재 모드가 뭔지 모르겠으면 일단 <esc>키를 두번 치고 시작한다.

 

/pattern pattern에 해당되는 문자를 찾아 커서를 이동한다.

 

 

:s/pattern1/pattern2 현재줄에서 pattern1에 해당되는 문자열을 찾아 pattern2로 치환해 준다. (처음 만나는 pettern1, 전체에 대해서 적용할려면 g를 붙인다. ) :s/pattern1/pattern2/g)

 

:%s/pattern1/pattern2 현재 파일내에서 pattern1에 해당되는 문자열을 찾아 pattern2로 치환해 준다.

:1-5s/pattern1/pattern2 현재 파일의 1~5줄 내에서 pattern1에 해당되는 문자열을 찾아 pattern2로 치환해 준다.

 

* <>로 둘러싸여있는거 다 없애기
:%s/\(<.\{-}>\)//g

*:
문서에
: fsfd[sgsdgsgsg]sfdfdf
:
저런 식으로 여럿 있습니다.
:
저기서 [ ] 사이의 모든 글을 지우고 싶습니다.
:
즉 위의 글을 fsfd[]sfdfdf 로 만들고 싶은데요.
:
잘 안되네요.
:
제 생각엔 :%s;[.*];[];g
:
저렇게 하면 될 것 같았는데 안돼네요.
:
아시는분 좀 갈챠주시길...
:
그럼 좋은 주말 보내셈~~


:%s/\[.*\]/\[\]/g
:%s/\[[^\]]*\]/\[\]/g
:help regular

* ct(
(
를 만나기 전까지 치환한다.
(
대신 다른것을 써도 된다.
)cta
a
를 만나기 전까지 치환한다.
c2ta
두번째 a를 만나기 전까지 치환한다.

*
두번째 스페이스까지만 남기고 뒷줄은 없애는것
:%s/^\(\(.\{-} \)\{2}\).*/\1/g

*
: cuit:x28
: xyzhero:x30ix
: xero:x18_lk
를 다음과 같이 바꿀려면, 즉 숫자뒤의 문자들을 없애는것
: cuit:x28
: xyzhero:x30
: xero:x18

%s/\D*$

* 1234,
김형달
에서 맨첨의 , ;로 바꾸기

:%s/,/;

*
여러 빈줄을 한 빈줄로 바꿈
:g/^$/.,/./-j

*
한글만 없애는것

*
숫자만 빼고 나머지는 다지우기
:%s/\D//g

*
맨앞의 #만 없애는것
:5,$s/\(^.*\)\(#\)/\1
맨처음의 것(뭐가 되든지)을 찾고 그다음 #을 찾고 맨처음의 것만 남긴다.

*
copy d:\0423\100\na029w d:\0424\na029w
copy d:\0423\100\na030w d:\0424\na030w
에서 맨마지막 \다음을 가져오는것

:%s/.*\\//

*
한줄을 ""로 감싸는것
:%s/.*/"&"/g

*
여러개의 공백을 한개의 공백으로 바꾸기
:%s/ \+/ /g

"
부분을 없애고
:%s/"//g

줄맨앞의 공백도 없애준다.
:%s/^\s*//g

줄맨뒤의 공백도 없애준다.
:%s/\s*$

*
화일전체를 대문자로 바꾸는것
:%s/.*/\U&/g
&
는 패턴찾기에서 나온 전부를 가리킨다.


유니코드로 찾기
/[\u숫자]

'Computer > vi에디터' 카테고리의 다른 글

커서 이동, 입력, 삭제  (0) 2014.01.04
posted by dalnimbest 2014. 1. 4. 11:31

숫자 + 이동키 : 숫자만큼 이동한다. 예를 들어 h는 왼쪽으로 1칸이동하는 명령어인데 3h는 왼쪽으로 3칸 이동한다.


<이동키>

+ 다음 라인의 첫 문자로 이동 

- 위 라인의 첫 문자로 이동 


^ 현재 있는 라인에서 맨 앞의 첫 문자로 이동 (공백이 아닌 문자)

0 현재 있는 라인에서 맨 앞의 첫 문자로 이동 (공백이라도 상관 없음)

$ 현재 있는 라인에서 맨 뒤의 마지막 문자로 이동 (공백이라도 상관없음)

그럼 공백이 아닌 맨마지막으로 이동하는것은?


Ctrl+f   한 화면 아래로

Ctrl+b   한 화면 위로

Ctrl+d   반 화면 아래로

Ctrl+u   반 화면 위로

Ctrl+l  현재의 화면을 다시 나타냅니다.


50% 문서에서 중간(50%)에 해당하는곳으로 이동(단 화면 맨 아래를 기준으로 한다. 커서가 화면 아래에 있지 않을때는 내가 간 %랑 화면이 다르다고 느낄수 있다.)

gg 제일 처음 라인의 맨 앞의 첫 문자로 이동 (빈줄이라도 상관없음) 

G 제일 마지막 라인의 맨 앞의 첫 문자로 이동 (빈줄이라도 상관없음)

그럼 빈줄이 아닌곳으로 이동하는것은?


'' 이전위치로 이동 (한번)

ctrl + o 이전위치로 이동 (누적)

ctrl + i 현재위치로 돌아오기 (누적)



zt 현재커서의 위치에 해당되는 문장을 화면의 맨위로 이동

z + Enter 현재커서의 위치에 해당되는 문장을 화면의 맨위로 이동(커서를 해당문장의 맨앞으로 옮긴다.)

z.  현재커서의 위치에 해당되는 문장을 화면의 가운데로 이동 (커서를 해당문장의 맨앞으로 옮긴다.)

zz 현재커서의 위치에 해당되는 문장을 화면의 가운데로 이동 

z- 현재커서의 위치에 해당되는 문장을 화면의 맨아래로 이동 (커서를 해당문장의 맨앞으로 옮긴다.)

zb 현재커서의 위치에 해당되는 문장을 화면의 맨아래로 이동 


ctrl + e 화면을 한줄씩 위로 올린다. (반대는 ctrl + y라고 하는데... 잘안되네...)



H   커서의 위치를 화면 맨위로

M  커서의 위치를 화면 가운데로

L   커서의 위치를 화면 맨아래로


gd 함수정의부분으로 이동(함수가 쓰인곳에서 쓴다.) 참고로 함수가 쓰인곳에 [i 를 누르면 함수의 프로토 타입을 볼수 있다.


[[ 함수의 첫부분으로 간다. (반복해서 누르면 위에 있는 함수의 첫부분으로 간다.)

]] 다음함수의 첫부분으로 간다. (반복해서 누르면 아래에 있는 함수의 첫부분으로 간다.)


% 매칭되는 기호를 찾아간다. 괄호등


* 커서가 위치한 단어를 찾아간다(아래로)

# 커서가 위치한 단어를 찾아간다(위로)


현재위치 마크(책갈피)하기

mx m을 누르고 a-z중 하나를 누르면 현재 위치가 마트된다.

'x '를 누르고 마크한것중 하나(a-z)를 누르면 그 마크한대로 이동한다. (맨앞줄로)

`x `를 누르고 마크한것중 하나(a-z)를 누르면 그 마크한대로 이동한다. (마크할때 커서가 있던 위치로)


<입력키>


i 현재 커서 위치에 입력 

I 현재 라인의 첫 문자 앞에 입력(공백이 아닌 문자)


a 현재 커서 위치의 오른쪽에 입력 

A 현재 라인의 마지막에 입력 (공백이라도 상관 없음)


o 현재 라인의 아래 라인을 입력 가능한 공백 라인으로 만듦 

O 현재 라인의 위 라인을 입력 가능한 공백 라인으로 만듦 



<삭제키>


x 현재 커서의 위치에 있는 1 문자 삭제 

X 현재 커서의 앞에 있는 1 문자 삭제 

dw 현재 커서의 위치부터 단어 끝까지 삭제 

db 현재 커서의 위치부터 단어 처음까지 삭제 

dd 현재 커서가 위치해 있는 1 라인 삭제 

D 현재 커서의 위치부터 라인의 끝까지 삭제 

그럼 커서의 위치로부터 라인의 시작까지 삭제는?


dG 현재 라인부터 파일의 마지막 라인까지 삭제  




<복사, 이동, 치환>

yw 현재 커서가 위치한 단어를 복사 

yy 현재 커서가 위치한 라인을 복사 


p 현재 커서의 오른쪽 또는 아래 라인에 복사한 내용을 입력 

P 현재 커서의 왼쪽 또는 위 라인에 복사한 내용을 입력 


J 현재 라인과 다음 라인을 연결 

r 현재 커서가 위치한 1 문자 치환 

R 현재 커서 위치부터 <Esc>키를 칠 때까지 문자 치환 


cw 현재 커서 위치의 단어를 다른 단어로 치환 

C 현재 커서의 위치부터 그 라인의 마지막까지 치환 


cc 현재 커서가 위치한 라인을 다른 내용으로 치환 

~ 현재 커서 위치의 1 문자를 소문자, 대문자로 치환 



'Computer > vi에디터' 카테고리의 다른 글

검색 및 치환  (0) 2014.01.04