'vim'에 해당되는 글 6건

  1. 2012.12.07 Vim Session 기능, highlight color 재 설정 6
  2. 2012.11.28 Vundle으로 Vimplugin을 쉽게 관리해 보자 (+ vimplugin 모음) 6
  3. 2011.02.09 Vim 윈도우 단축키 7
  4. 2009.11.24 투명터미널 + vim의 syntax 색겹침 해결 (vim 하이라이트) 12
  5. 2009.07.05 내가 비주얼스튜디오를 쓰게 되다니! 10

Vim Session 기능, highlight color 재 설정

매번 여는 파일 또열고 여는거 귀찮아서,


project_show.sh 라는 shell script를 만들고, 그안에다가 창분할해서 vim띄우게 만들어 놨었는데...


어느날 어쩌다, 검색하다 보니깐, vim에서도 session기능이 있는걸 알았습니다...


푸푸.. vim을 몇년째 쓰고있는데, 지금 들어서 알게 되었네요...


사용법은 간단합니다...


Store Session

:mksession SESSION_FILEPATH

;그냥 overwrite하려면 :mksession! 하면 됩니다.. 뭐 다 비슷하죠...


Load Session

$vim -S SESSION_FILEPATH


저 같은 경우는 그냥 screen에 바로 저렇게 박아 놨습니다.

screen -t "PROGRAMMING"     1   vim -S /home/lowid/.vim/Session.vim


세션 저장할때, 매번 :mksession 하기 귀찮으니까, 다음과 같이 키 맵핑을 해 놓으면 편합니다.

요렇게 해 놓으면 SQ 누르면 세션이 저장되면서 exit vim

~/.vimrc
nmap SQ <ESC>:mksession! ~/vim/Session.vim<CR>:wqa<CR>


역시 세션이라... 쓰던 파일들은 당연하고, 창분할까지 저번에 열였던 상태로 그대로 보존합니다...


아주 좋아요...


근데 제가쓰는 vim은 세션 기능을 쓰면 ~/.vimrc의 highlight를 무시해 버리더군요...


(아마 아치만 그런듯 한데......)


그래서 어쩔 수 없이, 다음과 같이 그냥 개인 color sheme파일을 만들어 놓고 씁니다...

" Vim color file
" Maintainer:   lowid
" Last Change:  2012/12/07

" 주의: 다른 vim coloscheme 파일과 달리,
"         이 개인 colorsheme은 vim plugin이 color를 설정해서 들어오기 때문에 highlight를 clear하면 안됨
"         적어도 세션 관련해서는 그런듯


if exists("syntax_on")
  syntax reset
endif

let colors_name = "lowid"

highlight LineNr       ctermbg=white       ctermfg=0           cterm=underline
highlight Comment                          ctermfg=darkgray    cterm=underline   
highlight Constant     ctermbg=darkmagenta ctermfg=white
highlight Identifier   ctermbg=cyan        ctermfg=black
highlight Statement    ctermbg=yellow      ctermfg=black
highlight PreProc      ctermbg=blue        ctermfg=white
highlight Type         ctermbg=green       ctermfg=black
highlight Underlined   ctermbg=blue        ctermfg=white
highlight String       ctermbg=black       ctermfg=red        
highlight Special      ctermbg=black       ctermfg=magenta    
highlight Search       ctermbg=black       ctermfg=white      

set statusline+=%{EchoFuncGetStatusLine()}


이후 다음을 추가

~/.vimrc

colorscheme lowid


참조 : http://vim.runpaint.org/editing/managing-sessions

Vundle으로 Vimplugin을 쉽게 관리해 보자 (+ vimplugin 모음)

0, Vundle(Bundle? 이란...)

간단히 말해서, vim plugin 관리자 에요...

pacman, rpm, apt-get이 시스템의 패키지를 관리하는거라면 얘는 vim plugin을 관리하죠.

번잡하게 vim.org에서 script 파일다운받아서 플러그인 디렉토리에 저장하는 삽질을 얘가 대신 해 줍니다.

그런고로 설치도 쉽고, 유지하기도 쉽고, 삭제도 깔끔하게 되고좋죠.


1, 저장소로 부터 설치

$git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle


2, ~/.vimrc에 다음 내용을 넣습니다

set nocompatible filetype off

set rtp+=~/.vim/bundle/vundle/ call vundle#rc()


" 필수 Bundle

Bundle 'gmarik/vundle'

" 이 사이에 원하는 번들(vim plugin)을 넣어줍니다.

filetype plugin indent on


3, 설정파일 다시불러오기

:so ~/.vimrc


4, 번들을 검색해 봅니다...

:BundleSearch


<<티스토리는 원본으로 사진올리기 참으로 힘드네여... 말풍선 안쓰면 원본(?)으로 올리기가 안되네요..

그래서 하는김에...일일이 스샷마다 말풍선을 달았습니다 -_-...>>


5, 원하는 번들을 검색합니다. 머 그냥 vim 에서 항상 찾던식으로.. (주의! 대소문자)

/SearchBundleName


6, 찾았으면 그 라인을 복사하고,  ~/.vimrc (" 이 사이에 원하는 번들(vim plugin)을 넣어줍니다.)아래에 집어 넣습니다. 

그냥 설치해도 되긴하지만.vimrc에 명확하게 정의를 해 놓아야 관리하기가 더 쉽겠죠

(정 안되면 플러그인 디렉토리 뒤져보면 되긴 하지만...)


7, 설정파일을 다시 불러온후, 설치를 시작합니다.

:so ~/.vimrc:
:BundleInstall


추가사항: 삭제할때는 ~/.vimrc에서 Bundle을 주석/삭제한후 vim을 재 시작 하신 후에

:BundleClean하면 됩니다. (BundleClean이라고 해서 전부가 초기화 되는건 아네요. 주석친거만 삭제!)


8, 이제 실제 제가 사용하는 vim plugin을 정리해 보겠습니다.

아마 저번에도 포스팅한게 있지 않을까 싶긴 한데... 추가된것도 많고, 한 김에 다 정리해 보려구요~

자 시작!


Bundle 'minibufexpl.vim'
" 버퍼를 보기쉽게 만들어 줍니다



~/.vimrc


let g:miniBufExplModSelTarget = 1
let g:miniBufExplorerMoreThanOne = 0
let g:miniBufExplModSelTarget = 0
let g:miniBufExplUseSingleClick = 1
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapCTabSwitchBuffs = 1
let g:miniBufExplHSplit = 10
let g:miniBufExplSplitAbove=1 "let g:miniBufExplSplitBelow=1
let g:alternateNoDefaultAlternate = 1


" Alt + number 맵핑

map  ^[1:bf<CR>
map  ^[2 :bf<CR> :bn1<CR>
map  ^[3 :bf<CR> :bn2<CR>
map  ^[4 :bf<CR> :bn3<CR>
map  ^[5 :bf<CR> :bn4<CR>
map  ^[6 :bf<CR> :bn5<CR>
map  ^[7 :bf<CR> :bn6<CR>
map  ^[8 :bf<CR> :bn7<CR>

map  ^[9 :bf<CR> :bn8<CR>


Bundle 'matchparenpp'

" 괄호 (),[],{}에 커서를 갖다대면, 상대 괄호를 깜박여 줍니다. 설정할거 없이 그냥 깔아 쓰면 됩니다. 참 쉽죠?


Bundle 'Conque-Shell'

" vim내부에서 shell을 사용합니다.아직은 화면출력에 문제가 있어, 명령어를 잠시 띄울때 사용합니다.

" 개행이 많을경우, clear, man, 기타 ncurses 프로그램을 사용한후 프로그램을 종료하면 잔상이 남는 문제가 있습니다.

" 그냥 잠시동안 사용하고 싶을때 사용하면 좋을거 같네요.

" 아 그리고 중요한것, vim컴파일 할때 python 확장기능이 사용이 가능하게 되어야 사용이 가능합니다.

" 추가적으로 설정, 더 자세한 것은 :help



~/.vimrc

" let g:ConqueTerm_InsertOnEnter = 1
" let g:ConqueTerm_CWInsert = 1
" let g:ConqueTerm_CloseOnEnd = 1      "쉘을 끝내면 창도 자동으로 닫습니다.


Bundle 'sudo.vim'

" root권한이 있는 파일을 저장할때 사용합니다.

" 저장할때는 다음과 깉이 합니다.

:e sudo:filepath


Bundle 'YankRing.vim'

" y,yy명령으로 복사한 내용을 보고, 붙여넣기 


" 명령은 다음과 같습니다. 명령자체가 설명이니까, 따로 설명은 하지 않겠습니다~

:YRShow

:YRSearch

:YRClear

:YRPop

:YRPush


" ~/.vimrc 에 yank파일경로를 지정합니다. 안하면 홈 디렉토리가 지저분해 지니까요.

let g:yankring_history_dir = '~/etc/vim'


Bundle 'https://github.com/Lokaltog/vim-powerline.git'

" powerline, vim의 아래창(상태표시줄)을 좀더 visual하게 보여줍니다.

" Shell의 TERM 변수가 "xterm-86color" 또는 "xterm-256color"로 설정되어 있어야 안깨지고 제대로 나옵니다.
" ps; git로 설치하여야 합니다. 일단 제가 설치할때는 번들이 있긴한데 git에서 받아오질 못하더라고요...

" ~/.vim/bundle/vim-powerline/autoload/Powerline/Colorschemes

" Pl#Hi#Segments(['mode_indicator']의 값을 변경하면, MODE색을 다른것으로 바꿀수 있습니다.

" 그리고 좀 더 fansy하게 보이려면 다음을 참조해 보세요.

" https://github.com/Lokaltog/vim-powerline/blob/develop/fontpatcher/README.rst


Bundle 'c.vim'

" c의 skel을 미리 작성해 줍니다. snipMate랑 같이쓰세요...

" 자주 쓰는거 몇개만 요약합니다. 명령 모드에서 다음을 입력 해 보세요.

" 간단한건 아래의 박스... 더 많은 단축키는 여기를 참조하세요 http://lug.fh-swf.de/vim/vim-c/csupport.html

\p< : include (#include <stdio.h>)

\p"  : include (#include "stdio.h" )

\im : main function

\if   : user defined function

\ias : assert();


Bundle 'DoxygenToolkit.vim'

" doxygen을 위한 주석 생성기능 입니다.

" 이렇게 하면 나중에 문서화 하기 훨씬 쉽겠죠?





Bundle 'EasyMotion'

" 단어(word)간 이동을 쉽게 합니다, \\w를 눌러보세요 :D

" 주변의 위치로 이동할때, 이제 hhh...,lll...www...WWW... 이런거 좀 적게 하게 되겠죠.

" ps; 단어 이동이 w니까! 로 생각하면 외우시기 좋을겁니다.


 \\w 

 로 단어 이동

 \\W 

 앞으로 단어 이동

 \\f

 뒤로 글자 검색

 \\F

 앞으로 글자 검색



Bundle 'neocomplcache'

" 향상된 자동완성 기능


Bundle 'ctags.vim'

Bundle 'cscope.vim'

" 아래 2개는 C,C++프로그래머라면 필수... 말이 필요없죠.

" ctrl + ] 이거 하나만으로도 대단하지 않나요? 해더파일 보는거랑...


Bundle 'cscope-quickfix'

" 제가 ctags와 더불어 오랬동안 사용했던 확장기능 이죠 ㅋㅋ..

" 컴파일 결과를 나타내는 결과 버퍼를 사용합니다. 에러/경고가 발생했을떄 편하게 위치를 이동할수 있습니다.

"~/.vimrc

autocmd BufReadPost quickfix    setlocal nonu
autocmd FileType asm            set makeprg =nasm\ -f\ bin\ -o\ %<.img\ %
autocmd FileType c,cpp          set makeprg =gcc\ -g\ -Wall\ -O2\ %\ -o\ %<
autocmd FileType sh               set makeprg =%


" 현재 디렉토리에 Makefile이 있다면, 기존 makeprg 대신 make명령을 사용한다           
func! Makefile_Run()                                                                 
    let now_file_path = expand("%:h")                                                
    if (now_file_path == "")                                                         
        let now_file_path = "."                                                      
    endif                                                                            
    if filereadable(now_file_path."/Makefile")                                       
        exec 'lcd ' . now_file_path                                                  
        set makeprg=make                                                             
    endif                                                                            
                                                                                     
    make                                                                                                                                                                                    
endfun


"저장후 컴파일해서 결과를 봅니다,

"저는 F10을 누르면 컴파일이 되고 아래에 결과가 나오게 설정했어요. 원하시는 키로 바꿔주세요.

map <F10> :ccl<CR>:w!<cr>:call Makefile_Run()<CR>:botright cwindow<CR><CR>








Bundle 'snipMate'

" 명령어 자동완성 기능입니다. c.vim은 복잡한(?)키를 입력해야하지만, 얘는 한방이에요...

" 단점이 있다면, 패턴이 그리 많지 않다는것... 그래서 c.vim과 같이 사용하길 추천합니다.

' 많이 사용하는 자동완성 타입은 다음과 같습니다.


-전처리기

 #include <stdio.h>

 inc  + <TAB>

 #include "Filename.h"

 Inc  + <TAB>

 #ifdef ~ #define ~ #endif

 Def  + <TAB>

 #define  def  + <TAB>
 #ifdef ~ #endif

 ifdef + <TAB>


- 제어, 반복문

 if

 if   + <TAB>

 else  el  + <TAB>
 do ~ while  do + <TAB>
 while  wh + <TAB>
 for  for + <TAB> (Loop), forr + <TAB> (Custom)


- 함수

 function

 fun + <TAB>, fund + <TAB>, main + <TAB>


- 선언

 typedef struct

 tds + <TAB>

 enum  tde + <TAB>


- 출력

 printf

 pr + <TAB>
 fprintf  fpr + <TAB>


전 snipMate/snippets/c.snippets 를 다음과 같이 약간 고쳐서 사용합니다. (2013/9/16)

데이터타입/디버그/기타 구문을 입맛에 맞게 추가/수정했습니다...

만약, 추가하실경우 snippet 이름이 겹치지 않게 주의하세요...




" 예> *.c 파일에서 자동완성한 모습.




Bundle 'tComment'

" 주석을 치는 확장기능. c,cpp,sh 등 다양한 포맷의 소스파일에 주석을 쉽게 칠수 있습니다.

" 주석을 해제할때도 "주석 체크"된 곳을 Block으로 잡고나서 "( Ctrl ) + ( _ ) + ( Ctrl ) + ( _ ) 하시면 해제 됩니다.

" 키가 복잡하다.. 하시는 분은 .vimrc에서 shortkey바꾸면 되겠죠.


Bundle 'surround.vim'

" 특정문자열을 태그/따옴표로 감싸는 기능. html태그 string형을 선언할때 유용하다.

" (명령모드에서) vi(블럭잡기) + w(단어) + s (sorround를 사용) + 감쌀 문자열 이런식으로 응용해서 사용합니다.

" 둘러싸는 기능 뿐만아니라, 삭제, 변경(작은따옴표를 큰따옴표로)도 가능합니다.


- 추가

Hello_world -> viws"

=> "Hello_world"


Hello_world ->viws'

=> 'Hello_world'


Hello_world -> viws[

=> [Hello_world]


Hello_world -> viws<head> ;viws< 하면 입력하시면 됩니다.

=> <head>Hello_world</head>


- 변경

"Hello_world"  -> cs"' # change surround '(작은따옴표) ->  '(큰따옴표)

=> 'Hello_world'


"Hello_world"  -> cs"' # change surround '(큰따옴표) ->  '(작따옴표)

=> 'Hello_world'


삭제

[Hello_world] -> ds[ # delete surround [ (중괄호)

Hello_world


Bundle 'ShowMarks'

" 왼쪽에 마크를 표시해 줍니다.



\mt   - ShowMarks 토글
\mo   - (마크가 되어있다면) ShowMarks를 계속 보여줍니다.
\mh   - 현재라인의 마크를 삭제합니다.
\ma   - 현재버퍼의 모든 마크를 삭제합니다.
\mm   - 현재라인에 마크를 답니다(마크번호는 사용가능한 다음 char,

예> 마크가 'b'로 되어있는 상태에서 \mm하면 현재라인에 마크를 'c'로 만듭니다.


~.vimrc


" 첫번째 라인 : 특정 타입을 무시합니다. h: Help, m : Non-modifiable, p : Preview, q : Quickfix, r : Readonly

" 두번째 라인 : 화면에 표시할 마크들을 표시합니다. defaults로 하면 일반적으로 쓰지 않는 마크들도 나와서 혼란...

let g:showmarks_ignore_type= "hprmq"
let g:showmarks_include= "abcdefhijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"


" 색깔을 변경합니다. 기본 xterm-256color로는 색깔 구별이 잘 되지 않더군요. 그래서 수정했습니다.

"l : lowcase, u : upcase, o : other, m: multiple

highlight ShowMarksHLl ctermfg=white ctermbg=blue
highlight ShowMarksHLu ctermfg=white ctermbg=blue
highlight ShowMarksHLo ctermfg=white ctermbg=blue
highlight ShowMarksHLm ctermfg=white ctermbg=blue


Bundle 'Align'

" 원하는데로 정렬을 지정할 수 있습니다

" http://www.drchip.org/astronaut/vim/align.html#Examples


Bundle 'Tagbar'

" taglist와 비슷한 확장기능인데... 그것보다 좀 더 좋아 보이네요.

" 사실 그전에 taglist로 적었다 이걸로 바꿨어요 ㅋㅋ



:TagbarOpen

:TagbarClose

:TagbarOpenAutoClose "Tagbar로 요소를 선택하면, 자동으로 Tagbar가 닫칩니다.

:TagbarSetFoldlevel n "최대 어느깊이n 까지 출력할까... 하는 옵션이라고 하네요. 전 C라 depth가 그리 깊게까지 못가봐서..

:TagbarToggle "Show/Hide 가 반복되는거죠 그냥...

:TagbarShowTag


~/.vimrc


let g:tagbar_left = 1 "0이면 오른쪽, 1이면 왼쪽에 출력

let g:tagbar_width = 30 "기본폭은 40입니다. 모니터가 작으면 줄여야 겠죠 ㅠ

let g:tagbar_autoclose = 1 "선택하면 자동으로 닫히게 하려면 1을 할당해 주세요

let g:tagbar_autofocus = 1 "커서가 이동하면 자동으로 선언된 위치로 갑니다 (?)


Bundle 'ctrlp.vim'

"프로젝트 디렉토리설정/파일이동을 쉽게 합니다

" 실행할떄는 :CtrlP, 창을 종료하려면, ESC를 두번 눌러 주시면 됩니다.



:CtrlP

:CtrlPDir

:CtrlPBufTag

:CtrlPBufTagAll

:CtrlPBuffer

:CtrlPChange


Bundle 'The-NERD-tree'

" 이번에도 디렉토리 이동을 쉽게 할 수 있는 확장기능 입니다.

" CtrlP보다 디렉토리 트리 이동이 가능합니다. 무었보다도 한눈에 트리가 보이니까 편하네요.

" 실행은 :NERDTree, 사용방법은 NERDTree창에 '?'를 입력하면 도움말을 보실수 있습니다. 

" 그래도 뭐 간단히 아래에 사용법 추가.

" hjkl로 방향이동

"기본적인 사용법은 다음과 같습니다

" 더 확실한 도움말을 원하시면, NERDTree에서 ?를 입력해 보세요.

? : 도움말창 토글

q : NERDTree 종료


- 디렉토리 이동

u : 상위 디렉토리로 이동

U : 상위 디렉토리로 이동, 모든 디렉토리리스트를 접음.

c : 선택된 디렉토의 하위 리스트를 새창을 열어서 보여줍니다.

C : 현재 선택된 디렉토리를 ROOT디렉토리로 두기(chroot)

cd : 현재 디렉토리명을 보여줌 (pwd)

P : 최상위 디렉토리(ROOT)로 이동

p : 부모 디렉토리로 이동

K : 첫번째 자식디렉토리로 이동

J : 마지막 자식디렉토리로 이동


- 새로고침

r : 현재 위치한 디렉토리를 새로고침

R : 전체 새로 고침


- 현재 선택된것이 디렉토리라면

o : 디렉토리 노드를 열기(보여주기)/접기

O : 모든 하위 디렉토리를 열기(보여주기)

X : 열린 모든 하위 디렉토리를 닫기(O와 반대)


- 현재 선택된것이 파일이라면

o : 미리보기 윈도우를 띄워서 미리보기

go : 미리보기

t : 새탭으로 열기

i : 수평분할해서 보여줍니다.

gi : 미리보기 윈도우를 사용하여 수평분할해서 보여줍니다.

s : 수직분할해서 보여줍니다.

gs : 미리보기 윈도루르 사용하여 수직분할해서 보여줍니다.


:NERDTreeFromBookmark "Bookmarkname" "북마크된걸 최상위 루트로 해서 엽니다

:NERDTreeToggle "Tagbar과 비슷한거죠머.. 토글기능. 없으면 나오게 하고, 이미 있으면 없애고..

:NERDTreeMirror "다른탭에 있는 NERDTree를 현재 탭과 공유하는 기능이라고 하는데... 사용하지 않아서 전 잘 모르겠어용

:NERDTreeClose

:NERDTreeFind "현재 열려있는 파일의 디렉토리의 트리를 봅니다. 그러니까, 현재디렉토리가 /tmp라면 새로띄우는 NERDTree의 Root는 /tmp 가 된다... 이말이죠.


~/.vimrc

let g:NERDChristmasTree = 1 "colorful 효과
let g:NERDTreeAutoCenter = 1
let g:NERDTreeChDirMode = 1
let g:NERDTreeHighlightCursorline = 1 "현재 커서 위치를 하일라이팅합니다. 기본값은 1

let g:NERDTreeSortOrder=['\.c$', '\.h$', '*'] "*.c, *.h, 기타파일 순으로 정렬합니다.

let g:NERDTreeBookmarksFile = ~/.NERDTreeBookmarks "북마크 파일을 지정합니다. 이값은 디폴트 값이에요.

let g:NERDTreeIgnore = ['\.vim$', '\~$'] "*.vim파일과 끝이'~'로 끝나는 파일들은 보여주지 않습니다.

let g:lNERDTreeWinSize = 20 "NERDTree의 폭을 설정합니다.

let g:NERDTreeMinimalUI = 1 "NERDTree에서 (위에뜨는) help/bookmark 메세지를 보여주지 않습니다.


" let g:NERDTreeShowHidden = 1 "숨김파일을 보여준다고 합니다.

" let g:NERDTreeShowLineNumbers=1 "라인을 보여줍니다

" let g:NERDTreeShowFiles = 0 "0이면 파일을 보여주지 않고, 디렉토리만 보여줍니다.

" let g:NERDTreeWinPos = right "이렇게 설정하면 오른쪽에 NERDTree가 나타납니다.

" 이외에 더 자세한건 :help NERDTree


Bundle 'echofunc.vim'

" 커서에 위치해 있는 define/변수가 정의된 형태를 상태표시줄에 보여준다

" 딱히 추가적으로 키 누르고 그런건 없습니다.

" 대신 "$ctags -R --fields=+lS ." 같이 해서 미리 태그를 만들어 둬야겠지요...

" 근데 옜날엔 잘 됬는데 이제 이 확장기능이 맛이 갔네요 아놔... 그래서 스샷은 딴걸로 대체 ㅠ.



~/.vimrc


let g:EchoFuncLangsUsed = ["java","cpp","c"] "적용할 언어

let g:EchoFuncPathMappingEnabled = 1 "특수디렉토리(홈디렉토리 하위파일들)에 있으면 파일경로를 자동으로 단축

let g:EchoFuncKeyNext = '<C-+>' "다음 태그

let g:EchoFuncKeyPrev = '<C-->' "이전 태그

"set statusline+=%{EchoFuncGetStatusLine()}

"let EchoFuncShowOnStatus = 1


Bundle 'myprojects'


ref :

https://github.com/gmarik/vundle

http://kldp.org/node/125263


ps; 와 이거 작성하는데 시간 무지하게 오래 걸리네요...

ps2; 그래도 그림이 있으니깐 훨씬 이해하기 쉬운듯...

ps3; 티스토리 글작성기능은 처음부터 끝까지 병신이네요.. 이렇게 에디트가 불편해서 어디 자주 포스팅 하겠나...?

ps4; 원래 완벽하게 다 포스팅 다해놓은 다음에 공개하려고 했는데, 그러다간 언제 할지 몰라서 그냥 이정도로 완성할래요 ㅠ


Vim 윈도우 단축키

인터넷 찾아보니깐, 일부 기능들만 있어서, 제가 몇개 추가해 보았습니다.

기능 몇개 더 있을거 있지만, 일단 이정도만 있어도 윈도우를 자유 자제로 다룰수 있는거 같아요.

(더 자세한건 :help split)

현재 사용하시는 모니터가 24인치 이상의 모니터라면 텀 여러개 띠우지 말고,

분할해서 사용하는것이 훨씬 낫습니다.

어짜피 이 기능 알고 계신분이라면 따로 vim에 대한 추가 설명이 필요 없을테니,

바로 단축키 나열에 들어 가겠습니다.

특별히 다를건 없습니다, 대부분 vim내에서 이미 사용하고 있는

단축키에다가  ctrl+w 버튼만 먼저 누른다는 차이 정도만 있습니다.

생성/닫기
ctrl+w+n : 비어 있는 새로운 윈도우를 위에 생성한다
ctrl+w+c : 현재 윈도우를 닫는다
ctrl+w+q : 현재 윈도우를 닫는다 (마지막 버퍼라면 vim을 종료 합니다)
ctrl+w+o : 현재 윈도우만(only) 빼고 윈도우를 모두 닫습니다.

파일간 이동
ctrl+w+f  : 현재 커서가 해더파일명 위에 있을경우, 그 해더파일을을 연다
예> #include "abc.h" <- abc.h 문자열에 커서를 두고 ctrl+w+f

ctrl+w+] : 함수위에 커서를 두고 단축키를 누르면  크기는 절반인 새로운 윈도우가 위에 열린다.
(편집용, 포커스가 이동함) (tag)

ctrl+w+} : 함수위에 커서를 두고 단축키를 누르면 크기는 1/4인 새로운 윈도우가 위에 나온다.
(단순 보기, 포커스 없음!)

ctrl+w+i : 위에 새로운 윈도우를 엽니다 (라이브러리 헤더파일 검색)


윈도우간 커서(포커스) 이동
ctrl+w+p : 바로 전 윈도우로 이동합니다
ctrl+w+s : 현재윈도우를 복사해서 위로 새로 생성합니다.
ctrl+w+n : 다음 윈도우 이동(?)
ctrl+w+h : 왼쪽 윈도우로 이동한다
ctrl+w+j  : 오른쪽 윈도우로 이동한다
ctrl+w+k : 아래 윈도우로 이동한다
ctrl+w+l  : 위 윈도우로 이동한다
ctrl+w+t  : 왼쪽 최상위 윈도우로 이동
ctrl+w+b : 오른쪽 최하위 윈도우로 이동


윈도우 크기 조절
ctrl+w+-: 윈도우 (상,하) 크기를 줄인다
ctrl+w++: 윈도우 (상,하) 크기를 늘린다
ctrl+w+< : 윈도우 (좌,우) 크기를 줄인다
ctrl+w+> : 윈도우 (좌,우)크기를 늘린다
ctrl+w+=: 모든 윈도우를 같게 한다.


현재 윈도우 단순 이동
ctrl+w+H : 현재 윈도우를 왼쪽으로 이동한다
ctrl+w+J : 현재 윈도우를 오른쪽으로 이동한다
ctrl+w+K : 현재 윈도우를 아래로 이동한다
ctrl+w+L : 현재 윈도우를 위로 이동한다


현재 윈도우 로테이션
Ctrl+w+r:  오른쪽 윈도우 로테이트
Ctrl+w+R: 왼쪽 윈도우 로테이트
Ctrl+w+x: 위 윈도우 로테이트


Tip
원래 ctrl+w+] 하면 위, 아래로 윈도우가 갈리는데, 이렇게 쓰지말고, 좌,우로 가를려면 다음 내용을
~/.vimrc에 추가해 주면 된다.
map <c-w>] :vertical wincmd ]<CR>

괄호 이동
[{. ]} - '%' 보다 편하다.

추가: vim에서 minibufexpl을 설치하면 따로 설정없이도 윈도우 이동은 ctrl+hjkl로 이동이 가능합니다

투명터미널 + vim의 syntax 색겹침 해결 (vim 하이라이트)

사용자 삽입 이미지

투명 바탕화면을 쓰는데,

거기다가 vim이랑 같이 쓰면 하일라이트가 색깔이 겹쳐버리기 때문에 불편함을 느낄때가 있죠?

에를 들어서 녹색 나뭇잎 바탕화면에 투명 터미널을 쓴다고 하면 (vim의 syntaxON 하고 색상이 default라면)

int, char 이런거 쓰면 색깔(같은 녹색)이 겹쳐가지구 코딩할때 라던가 불편을 느낄때가 많았었 습니다.

그래서 한 1년전에는 리눅이 바탕화면을 무조껀 껌은것으로만 썻던때도 있었죠...

(제가 파랑, 녹색 계열의 바탕화면을 좋아했는데. 워낙 색깔이 겹쳐 버리는지라..)

그러다가 몇달전부터 이 하일라이트에 색깔주는 기능을 알아서 .................

기냥 제가 좋아하는 나무나, 구름 배경하면 걍 씁니다

원래 대충설정하고 걍 썻었는데 쉘 스크립트 조금 건드리면서 색깔이 도저히 겹쳐서.... 그냥 다 뒤집고 한번도

셋팅을 해 주었습니다.. 덕분에 오랜만에 블로깅도 하는거구...

vim이랑 bash랑 색깔 바꾸니깐 100% 투명으로 써도 뭐 잘 보입니다..

어쨋던 아래는 ~/.vimrc의 설정파일 일부분....

hi LineNr    cterm=underline ctermfg=0 ctermbg=white
hi Comment   cterm=underline ctermfg=darkgray
hi Constant  ctermbg=darkmagenta ctermfg=white
hi Identifier ctermbg=cyan ctermfg=black
hi Statement ctermbg=yellow ctermfg=black
hi PreProc ctermbg=blue ctermfg=white
hi Type      ctermbg=green ctermfg=black
hi Underlined ctermbg=blue ctermfg=white
hi String ctermfg=red ctermbg=black
hi Special ctermfg=magenta ctermbg=black

물론 저대로 하지 않고, 확장자 마다 다르게도 설정할수 있습니다. 편한대로 하세요..

더 자세한건 역시나 :help hi 하시면 됩니다..

(속성, 색깔 옵션 모두 나옵니다.. 영어라서 해석하기 귀찮은게 문제지만 ; )

덤으로 그냥  bash애서 색깔 바꾸는 방법도 간단하게 적어둡니다

~/.bashrc에 다음을 추가해 주세요

export LS_COLORS="di=91;40":"ex=0;42":"ln=96;40":"so=93;40"

디렉토리, 실행파일(+x), 링크, 공유라이브러리  색깔을 바꾸는 그런.. 겁니다.. 이것도 아마

man bash하면 나오던가,,, 암튼 man페이지에서 보고 했던걸로 기억...

내가 비주얼스튜디오를 쓰게 되다니!

한 일주일전만해도 전 (경멸하던?!)MFC로 일할거는 생각도 못했는데.............

뭐 어쨋던 원래 만들어진 소스로 하는것이니까 어쩔수가 없네여

작년에 했는거 생각을 더듬어가면서 할수밖에....

하도 야매로 대충배워서 기억나는건 별로 없지만..... 기억을 더 오래남기기 위해서 정리.

디버깅
선택 + F1 MSDN
F5 디버깅/실행/다음단계로
Shift + F5 디버깅 중지
F7 빌드만
ctrl + F7 컴파일
F9 브포(브레이크 포인트) 걸기
F10 디버깅, Step (line)

에디팅의 간단한것
(복사, 붙여넣기, 잘라내기, 저장하기, 열기, 새로만들기, 검색하기, 대체하기,되돌리기,되살리기 ) 패스

클래스 마법사
ctrl + w

설정(setting)
alt + F7


아직은 초짜라서 이정도만 알아도 별 불편함이 없는것 같아요.. 게다가 GUI DEV툴이라서 그런지

단축키 기능이 상당히 허접(?) 한듯해요 메뉴봐도 단축키 없는게 수두룩함.... vim의 빠른 속력(?)을 필요해서

vs6  + vim이랑 연동을 해봤는데... 별로 안좋더군여 vim창도 따로 나오고... 그래서 일단 그냥 있는대로 쓸예정

글구 MFC랑 Winapi랑은 꽤나 달라서... 아나 이거 api로 할수 있음 편할텐데.. 하는것도 몇개 있음...

뭐 먹히긴하지만 그래도 MFC는 클래스니깐 클래스기준으로 찾아야해서 어떤클래스가 어떤기능을 하는지

다 알아야할텐데 이거 찾는게 정말 죽을맛.. 대체 한두개여야지... MSDN이 있긴하지만 워낙에 방대해서..



아아 나의 리눅이는 갈수록 점점 멀어져 ㅜㅜ
... some code here ....
prev 1 2 next