"Vim"의 두 판 사이의 차이

ph
이동: 둘러보기, 검색
1번째 줄: 1번째 줄:
 +
==paste large text to a file==
 +
Do not use vim. Use <code>here document</code>.[https://stackoverflow.com/a/2954835/766330]
 +
cat << END > targetfile
 +
...
 +
> END
 +
 
==Insert line numbers==
 
==Insert line numbers==
 
  :%s/^/\=printf('%-4d', line('.’))
 
  :%s/^/\=printf('%-4d', line('.’))

2019년 1월 14일 (월) 21:17 판

paste large text to a file

Do not use vim. Use here document.[1]

cat << END > targetfile
...
> END

Insert line numbers

:%s/^/\=printf('%-4d', line('.’))

\= is the result of evaluating the following expression
%-4d is a left-aligned decimal number(%4d is right-aligned)

or

:%!nl -ba

Make Vim show ALL white spaces as a character

:set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣
:set list [2] 

아래와 같이 하면 탭등 구분은 안되지만 일단 공백이 다른 색으로 보임.

:syntax on
:set syntax=whitespace   [3]

autocomplete에 dash포함

:set lisp [4]

다른 방법으로는,

:set iskeyword+=\- [5]

이용

Auto completion in command line mode

:help wildmode  

I am using

:set wildemode=list:longest

Display line numbers

:highlight LineNr term=bold cterm=NONE ctermfg=DarkGrey ctermbg=NONE gui=NONE guifg=DarkGrey guibg=NONE  

[6]


이미 읽은 파일의 인코딩 변경

:e ++enc=euc-kr

[7]


tab으로 편집

:help tabpage
:help tabe

ref. :Te


temporary ic when searching

insert '\c'(or '\C') at the end. (eg: /example\c will match with 'Example').
ref. :help pattern


Gnu indent

function! GnuIndent()
   setlocal cinoptions=>4,n-2,{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1,//0
   setlocal shiftwidth=2
   setlocal tabstop=8
endfunction
au FileType c,cpp,php call GnuIndent()


Copy using t command

:81,91t.<enter>

Copy the current lines to your present cursor location. [8]

Change tab(\t) to space

:set expandtab
:retab

[9]

Reverse all lines

:g/^/m0

g: reg match인 모든 곳에서 명령실행

혹은 다음과 같이 한다.

:%!tac

[10]

non-greedy match

.\{-}

[11]

Match except last parenthesis

:%s/\(.\{-}\)\( \?([^)]*)\)\?$/[[\1]]\2/

‘optional한 마지막 괄호’만 빼고 다른 모든것을 매치하고 싶었는데, stackoverflow에 물어보니 ‘닫는괄호를 제외한 나머지’와 match하는게 핵심 아이디어 였음. 즉, 괄호 match에 다음을 쓰는 것.

([^)]*)[12]

magic을 이용한 방법[13]이 더 깔끔해보이긴 함

/\v(^\w+(\s\w+)?)
:%s,,[[\1]],g

Regexp with magic

\v

vimdoc참고. 훨씬 깔끔해진다.