Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

ViImproved: Difference between revisions

From ZeroWiki
imported>qa22ahj
No edit summary
imported>qa22ahj
No edit summary
Line 8: Line 8:


== 모드 ==
== 모드 ==
vi에는 여러가지 모드가 존재한다. vi를 처음 켰을때의 모드는 명령모드(command mode)이다. 각 모드는 명령모드에서 진입할수 있게끔 되어있다. 모든 모드에서는 기본적으로 esc를 눌러서 명령모드로 돌아 올수 있다[[* 이때문에 CAPSLACK을 ESC키로 매핑해 놓는 사람도 있다]]. 이를 state diagram으로 나타내면 다음과 같다.
vi에는 여러가지 모드가 존재한다. vi를 처음 켰을때의 모드는 명령모드(command mode)이다. 각 모드는 명령모드에서 진입할수 있게끔 되어있다. 모든 모드에서는 기본적으로 esc를 눌러서 명령모드로 돌아 올수 있다[[* 이때문에 CAPSLACK을 ESC키로 매핑해 놓는 사람도 있다]]. 이를 [[state diagram]]으로 나타내면 다음과 같다.
[[:File:vim_mode.png|vim_mode.png]]
[[:File:vim_mode.png|vim_mode.png]]


=== 명령모드 ===
=== 명령모드 ===
모든키가 하나하나 명령으로 동작하는 모드이며 이 모드에서는 주로 문서내에서의 이동이나 편집을 담당하게 된다. 키조합을 통해 상당히 많은 명령이 가능하며 이모든 명령을 다 외우는 사람은 없다고 봐도 무방하다. 하지만 주로 쓰는 명령은 극히 제한적이고 논리적으로 정리되어 있는 편이기 때문에 사용하는 데에는 큰 무리가 없다.
=== 편집모드 ===
=== 편집모드 ===
실제로 문서를 편집하는 모드이며 명령모드에서 i키를 눌러 진입할수 있고 ESC키를 눌러 빠져 나올수 있다. 이 모드는 글자의 입력에만 사용되므로 극히 일부 키만 제외하고는 window의 메모장 처럼 그져 입력만 할수 있다. 상단에 위치한 Function Key[[* F1~ F12]]들도 그냥 입력이 될뿐 동작하지 않는다.
=== ex모드 ===
=== ex모드 ===
명령모드에서는 할수 없는 동작들을 수행한다. 주로 명령에 인자가 필요한 경우가 대부분이며 편집기를 닫거나 새로운 파일을 열거나 할때 사용된다. 명령모드에서 :를 눌러서 ex모드로 들어갈수 있으며 하단에 :과 더불어 명령의 내용을 확인할수 있다.
=== 비주얼 모드 ===
=== 비주얼 모드 ===
 
잘라 붙이기나 복사할때의 영역을 지정할수 있는 모드로 명령모드와 유사하나 범위를 지정할수 있는 것이 큰 차이점이다. 주로 문서를 편집하기 위해 명령모드와 같이 많이 사용되며 자신이 선택한 영역이 어디에서부터 어디까지인지 알수 있다. 다만 당연하게도 마우스로 지정할수는 없고[[* gvim 같은경우에는 마우스로 선택하면 자동으로 비주얼모드로 전환된다]] 키보드로 지정할수 있다.
=== 찾기 모드 ===
특정한 문구를 찾기 위한 모드이며 별도의 모드로 취급하지 않을때가 많다. ex모드처럼 하단에 명령이 보이나 :으로 시작하지 않고 /로 시작한다. [[정규표현식]]을 사용하여 검색할수 있으며 정규표현식에 익숙하다면 누구보다 빠르게 문서를 검색할수 있다.
= 단축키 =
= 단축키 =
vim에서는 단축키라기 보다는 실제 명령이라 할수 있다. 왜냐면 해당하는 작업을 하기 위한 방법이 해당 키를 누르는 것 밖에 없기 떄문이다. vim은 console기반이기 떄문에 당연히 마우스는 배제되며 마우스로 할수 있는 일을 쉽게 할수 있는 방법으로써의 key가 아니기 때문에 엄밀히 말하면 단축키는 아니다. 오히려 명령어라는 표현이 많이 사용되지만 GUI 편집기에 익숙한 사람들입장에서는 단축키로 보이므로 단축키라 하겠다.
== 명령모드 ==
== 명령모드 ==
=== 이동 ===
이동 명령어들은 아주 중요하다. 과거에 오리지널 vi는 방향키를 인식하지 못하며[[* 이전에는 키보드에 방향키가 없었다]] 따라서 이동키를 이용하는 것이 유일하게 커셔를 옯길수 있는 수단이었다.
{| class="wikitable"
|-
| 앞으로 한칸 이동
| H
|-
| 위로 한칸 이동
| J
|-
| 아래로 한칸 이동
| K
|-
| 뒤으로 한칸 이동
| L
|}
== ex모드 ==
== ex모드 ==



Revision as of 11:18, 16 January 2014

개요

Text Editor인 VI 의 확장판. NoSmok:CharityWare, WikiPedia:Careware 인 아주 유연한 에디터. 처음에 접근하기 어렵지만, 익숙해지면 여러모로 편리한 응용이 가능하다.

사실 다들 오해하고 있는 것 중의 한가지로는 vim은 불편하다는 것이다. 최근의 vim은 플러그인을 통해 여러가지 기능을 지원하며 그 중에는 단어 자동완성을 물론 문맥 자동완성뿐만 아니라 대부분 언어에 대한 syntax highlight를 지원한다. 요즘에는 흔히 볼수있는 탭기능도 지원하기 시작한지 오래되었으며 좌측에 파일 트리를 띄워두고 작업할수도 있다. 또한 .vimrc파일을 통한 강력한 커스텀마이징이 가능하며 이를 이용하여 이클립스를 능가하는 편의성을 지니기도 한다.


모드

vi에는 여러가지 모드가 존재한다. vi를 처음 켰을때의 모드는 명령모드(command mode)이다. 각 모드는 명령모드에서 진입할수 있게끔 되어있다. 모든 모드에서는 기본적으로 esc를 눌러서 명령모드로 돌아 올수 있다* 이때문에 CAPSLACK을 ESC키로 매핑해 놓는 사람도 있다. 이를 state diagram으로 나타내면 다음과 같다. vim_mode.png

명령모드

모든키가 하나하나 명령으로 동작하는 모드이며 이 모드에서는 주로 문서내에서의 이동이나 편집을 담당하게 된다. 키조합을 통해 상당히 많은 명령이 가능하며 이모든 명령을 다 외우는 사람은 없다고 봐도 무방하다. 하지만 주로 쓰는 명령은 극히 제한적이고 논리적으로 정리되어 있는 편이기 때문에 사용하는 데에는 큰 무리가 없다.

편집모드

실제로 문서를 편집하는 모드이며 명령모드에서 i키를 눌러 진입할수 있고 ESC키를 눌러 빠져 나올수 있다. 이 모드는 글자의 입력에만 사용되므로 극히 일부 키만 제외하고는 window의 메모장 처럼 그져 입력만 할수 있다. 상단에 위치한 Function Key* F1~ F12들도 그냥 입력이 될뿐 동작하지 않는다.

ex모드

명령모드에서는 할수 없는 동작들을 수행한다. 주로 명령에 인자가 필요한 경우가 대부분이며 편집기를 닫거나 새로운 파일을 열거나 할때 사용된다. 명령모드에서 :를 눌러서 ex모드로 들어갈수 있으며 하단에 :과 더불어 명령의 내용을 확인할수 있다.

비주얼 모드

잘라 붙이기나 복사할때의 영역을 지정할수 있는 모드로 명령모드와 유사하나 범위를 지정할수 있는 것이 큰 차이점이다. 주로 문서를 편집하기 위해 명령모드와 같이 많이 사용되며 자신이 선택한 영역이 어디에서부터 어디까지인지 알수 있다. 다만 당연하게도 마우스로 지정할수는 없고* gvim 같은경우에는 마우스로 선택하면 자동으로 비주얼모드로 전환된다 키보드로 지정할수 있다.

찾기 모드

특정한 문구를 찾기 위한 모드이며 별도의 모드로 취급하지 않을때가 많다. ex모드처럼 하단에 명령이 보이나 :으로 시작하지 않고 /로 시작한다. 정규표현식을 사용하여 검색할수 있으며 정규표현식에 익숙하다면 누구보다 빠르게 문서를 검색할수 있다.

단축키

vim에서는 단축키라기 보다는 실제 명령이라 할수 있다. 왜냐면 해당하는 작업을 하기 위한 방법이 해당 키를 누르는 것 밖에 없기 떄문이다. vim은 console기반이기 떄문에 당연히 마우스는 배제되며 마우스로 할수 있는 일을 쉽게 할수 있는 방법으로써의 key가 아니기 때문에 엄밀히 말하면 단축키는 아니다. 오히려 명령어라는 표현이 많이 사용되지만 GUI 편집기에 익숙한 사람들입장에서는 단축키로 보이므로 단축키라 하겠다.

명령모드

이동

이동 명령어들은 아주 중요하다. 과거에 오리지널 vi는 방향키를 인식하지 못하며* 이전에는 키보드에 방향키가 없었다 따라서 이동키를 이용하는 것이 유일하게 커셔를 옯길수 있는 수단이었다.

앞으로 한칸 이동 H
위로 한칸 이동 J
아래로 한칸 이동 K
뒤으로 한칸 이동 L

ex모드


참고 링크


도구분류