'vim'에 해당되는 글 2건


원문출처: http://monac.egloos.com/1936134

autocomplpop.vim : Automatically open the popup menu for completion
http://www.vim.org/scripts/script.php?script_id=1879

2007년 5월에 등장한 플러그인입니다.
autocomplpop.vim 파일을 자신의 홈 ~/.vim/plugin 디렉터리에 복사합니다. 그러면 끝입니다.

C 언어를 쓰거나, 파이썬을 쓰거나, 루비를 쓰거나 잘 동작합니다. 루비라면 apt-get install vim-ruby를 설치하면 잘 동작합니다.

엔터키를 입력하면 완성되지만 비주얼 스튜디오를 쓰던 손맛이 있어서 탭키가 익숙합니다. 그래서 ~/.vimrc에 다음을 추가합니다.

function! InsertTabWrapper()
  let col = col('.') - 1
  if !col || getline('.')[col-1]!~'\k'
    return "\<TAB>"
  else
    if pumvisible()
      return "\<C-N>"
    else
      return "\<C-N>\<C-P>"
    end
  endif
endfunction

inoremap <tab> <c-r>=InsertTabWrapper()<cr>

이 스크립트는 http://blog.blueblack.net/item_164에서 가져왔습니다. ^^;

그런데 조금 문제가 있습니다. 엔터키를 입력해도 항상 코드가 자동 완성됩니다. printf가 아니라 print만 입력하고 싶어도 자꾸 printf만 되죠. 그래서 위 코드를 다시 아래처럼 바꿉니다.

function! InsertTabWrapper()
  let col = col('.') - 1
  if !col || getline('.')[col-1]!~'\k'
    return "\<TAB>"
  else
    if pumvisible()
      return "\<C-P>"
    else
      return "\<C-N>\<C-P>"
    end
  endif
endfunction

inoremap <tab> <c-r>=InsertTabWrapper()<cr>
inoremap <expr> <CR> pumvisible() ? "<C-Y><CR>" : "<CR>"

이렇게하면 코드 완성은 탭키로만하고 엔터키를 누르면 자동 완성은 하지 않고 줄바꿈을 할 수 있습니다.

이 플러그인은 현재까지 다운로드 수가 3257밖에 안 되었습니다. 이런 건 좀 널리 써줘야 해요~

팝업창의 색상 설정은 .vimrc에 다음과 같이 하면 됩니다.

hi Pmenu guibg=#666666
hi PmenuSel guibg=#8cd0d3 guifg=#666666
hi PmenuSbar guibg=#333333

autocomplpop.vim
taglist.vim

신고
블로그 이미지

꽃중년

불만있으면 떠나라...

"=============================================================================
" default (gvim v7.1)
"=============================================================================
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

set diffexpr=MyDiff()
function MyDiff()
  let opt = '-a --binary '
  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
  let arg1 = v:fname_in
  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
  let arg2 = v:fname_new
  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
  let arg3 = v:fname_out
  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
  let eq = ''
  if $VIMRUNTIME =~ ' '
    if &sh =~ '\<cmd'
      let cmd = '""' . $VIMRUNTIME . '\diff"'
      let eq = '"'
    else
      let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
    endif
  else
    let cmd = $VIMRUNTIME . '\diff'
  endif
  silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction

"=============================================================================
" set
"=============================================================================
set tabstop=4
set shiftwidth=4
"set expandtab "탭을 스페이스로 바꾸어줌

filetype on  " 파일의 종류를 자동으로 인식
syntax on "문법 색상 강조

"set backup  "백업 파일 만들기
set nobackup "백업 파일 생성하지 않음
"set nowrap "자동줄바꿈 사용 안함

set ruler "커서가 위치한 열과 행을 표시
set showmode "삽입모드, 명령모드, 블럭모드등의 현재 모드 표시
set ignorecase "검색시 대소문자 구별 하지 않음
set hlsearch "검색어 색상 강조
set autoindent "자동 들여쓰기 설정

"set guifont=굴림체:h12:cHANGEUL "폰트 설정
"set guifont=ProFontWindows:h12 "폰트 설정
set guifont=Bitstream_Vera_Sans_Mono:h10

set lines=65 columns=85 "창크기 설정
set title "제목표시줄에 파일명 표시

set cmdheight=2 "command line의 줄수를 지정한다.
set exrc "현재 디렉토리의 vimrc 파일을 실행할 수 있게...

set showmatch "괄호 닫기 할 때 열었던 괄호와 매칭 확인
set mousehide "타이핑시 마우스 커서 감추기
set visualbell "경고소리를 깜빡임으로 대치
"set history=50 "파일 편집 시 undo 할 수 있는 최대 회수 설정

"한영 입력 상태에 따라 커서 색깔을 다르게...
if has('multi_byte_ime')
 highlight Cursor guibg=black guifg=NONE
 highlight CursorIM guibg=blue guifg=NONE
endif

"set backupdir=%VIM/backup
"set dir=%VIM/tmp

set nu
set wmnu "Tab 자동 완성시 가능한 목록을 보여
colorscheme desert "colorscheme을 elfload로 세팅

"=============================================================================
" Tags
"=============================================================================
set tags=./tags,C:\Projects\DME\Software\TCU_V1\tags


"=============================================================================
" Key Mapping
"=============================================================================
map <F5> :20vs ./<CR>
map <F6> O

"Ctrl+e를 누르면 현재 오픈한 파일의 디렉토리에 대한 탐색기를 띄운다
map <C-e> :silent !explorer %:p:h:gs?\/?\\\\\\?<CR>

" Directory Explorer를 위한 키맵핑
":nnoremap <silent> <F5> :TagExplorer


신고
블로그 이미지

꽃중년

불만있으면 떠나라...

Tag gVim, gvimrc, vi, vim

티스토리 툴바