[vim] 이전에 알고 싶었던 간단한 Vim 명령 [닫기]

나는 Vim에서 항상 새로운 명령을 배우고 있지만, 모든 사람들이 가끔 새로운 것을 배우게 될 것입니다. 나는 최근에 이것에 대해 배웠다.

zz, zt, zb- 화면의 중간, 상단 또는 하단에 위치 커서

오래 전에 배우고 싶었던 다른 유용하거나 우아한 명령은 무엇입니까?



답변

삽입 모드를 전환 하는 CtrlC대신 사용할 수 있다는 것을 알고 싶습니다 Esc. 그것은 저에게있어 실질적인 생산성 향상이었습니다.


답변

내가 배운 가장 최근의 “와우”트릭은 복잡한 검색 및 교체 방법입니다. 과거에는 종종 대체 작업을 수행하는 정규 표현식이 복잡하여 작동하지 않았습니다. 더 좋은 방법이 있습니다.

:set incsearch             " I have this in .vimrc
/my complicated regexp     " Highlighted as you enter characters
:%s//replace with this/    " You don't have to type it again

여기서 “트릭”(더 나은 단어를 원함)은 검색을 사용하여 정규 표현식을 작성하고 문자를 입력 할 때 ‘incsearch’가 강조 표시 한 다음 대체에 빈 패턴을 사용할 수있는 방법입니다. 패턴의 기본값은 마지막 검색 패턴입니다.

예:

/blue\(\d\+\)
:%s//red\1/

다음과 같습니다.

:%s/blue\(\d\+\)/red\1/

보다:

:help 'incsearch'
:help :substitute


답변

내 친구에게 가장 많이 사용되는 명령에 대한이 참조를 만들었습니다.

select                                   v
select row(s)                            SHIFT + v
select blocks (columns)                  CTRL  + v
indent selected text                     >
unindent selected text                   <
list buffers                             :ls
open buffer                              :bN (N = buffer number)
print                                    :hardcopy
open a file                              :e /path/to/file.txt
                                         :e C:\Path\To\File.txt
sort selected rows                       :sort
search for word under cursor             *
open file under cursor                   gf
  (absolute path or relative)
format selected code                     =
select contents of entire file           ggVG
convert selected text to uppercase       U
convert selected text to lowercase       u
invert case of selected text             ~
convert tabs to spaces                   :retab
start recording a macro                  qX (X = key to assign macro to)
stop recording a macro                   q
playback macro                           @X (X = key macro was assigned to)
replay previously played macro *         @@
auto-complete a word you are typing **   CTRL + n
bookmark current place in file           mX (X = key to assign bookmark to)
jump to bookmark                         `X (X = key bookmark was assigned to
                                             ` = back tick/tilde key)
show all bookmarks                       :marks
delete a bookmark                        :delm X (X = key bookmark to delete)
delete all bookmarks                     :delm!
split screen horizontally                :split
split screen vertically                  :vsplit
navigating split screens                 CTRL + w + j = move down a screen
                                         CTRL + w + k = move up a screen
                                         CTRL + w + h = move left a screen
                                         CTRL + w + l = move right a screen
close all other split screens            :only

*  - As with other commands in vi, you can playback a macro any number of times.
     The following command would playback the macro assigned to the key `w' 100
     times: 100@w

** - Vim uses words that exist in your current buffer and any other buffer you may have open for auto-complete suggestions.


답변

gi 는 삽입 모드로 전환하여 이전과 같은 위치에 커서를 놓습니다.


답변

:큐!

vi를 처음 시작하기 전에 알고 있었으면 좋겠습니다.


답변

^ XF 는 현재 디렉토리의 파일 이름 사용을 완료합니다. 더 이상 터미널에서 복사 / 붙여 넣기 또는 고통스러운 이중 점검이 필요하지 않습니다.

^ XP 는 현재 파일에서 단어 사용을 완료합니다

: set scrollbind 는 한 버퍼가 다른 버퍼와 나란히 스크롤하도록합니다. 예를 들어 창을 두 개의 수직 창으로 분할하십시오. 각각 하나의 파일을로드하십시오 (아마도 동일한 파일의 다른 버전). 수행 :set scrollbind각. 이제 하나를 스크롤하면 두 창이 함께 스크롤됩니다. 파일 비교에 이상적입니다.


답변

전체 명령 세트를 사용하여 대괄호 / 괄호 / 따옴표 / 태그 안의 텍스트를 변경할 수 있습니다. 그룹의 시작과 끝을 찾지 않아도되는 것이 좋습니다. 시험ci(, ci{, ci<, ci", ci', ct변경하려는 객체의 종류에 따라 . 그리고ca(, ca{, ... 변형은 대괄호 / 따옴표도 삭제합니다.

기억하기 쉬움 : 괄호 안의 내용 변경 / 괄호 안의 내용 변경