czwartek, 10 marca 2011

Vim - kompletny plik _vimrc, lub _gvimrc

Okazało się, że publikacja kilku wpisów wywołała żywe zainteresowanie Vim'em jako hiper-szybkim edytorem tekstu. Zdaję sobie sprawę, że na początku ciężko jest przebrnąć przez ogrom możliwości konfiguracyjnych. Zamieszczam więc tutaj jedną z wersji naszego pliku _gvimrc jako przykład:
set nocompatible
source $VIMRUNTIME/vimrc_example.vim

"Nie chcę aby gvim był podobny do windowsów
"source $VIMRUNTIME/mswin.vim
"behave mswin

"nie zawijaj wierszy
set nowrap

"wcięcia
set tabstop=4
set shiftwidth=4

"poprawne odkodowywanie plików wraz zautomatycznym ich rozpoznawaniem
set fileencodings=utf-8,latin2
set enc=utf-8

"chcę zachować pliki przed zmianą, tyle że w tym katalogu
set backupdir=d:/Archiwum/vim_backups

"schemat kolorów
"colorscheme desert
colorscheme murphy

"wielkość okna
set columns=120
set lines=60
winp 0 0

"ignorowanie wielkości liter podczas wyszukiwania
set ignorecase

"ukrywanie wskaźnika myszy gdy się pisze
set mousehide
set linebreak

"autocomplete po naciśnięciu Ctrl-P lub Ctrl-N
set completeopt=longest,menuone
inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
inoremap <expr> <C-n> pumvisible() ? '<C-n>' :
  \ '<C-n><C-r>=pumvisible() ? "\<lt>Down>" : ""<CR>'
inoremap <expr> <M-,> pumvisible() ? '<C-n>' :
  \ '<C-x><C-o><C-n><C-p><C-r>=pumvisible() ? "\<lt>Down>" : ""<CR>'

"Włączam pokazanie numerów wierszy
set number
set numberwidth=4 "ale nie więcej niż 9999

"na dole i na górze zostawiam 5 linijek żeby coś widzieć
set scrolloff=5

"set cursorcolumn " highlight the current column
set cursorline " highlight current line
set incsearch " BUT do highlight as you type you search phrase

"Obsługa foldingu czyli zwijania i rozwijania wierszy
set foldmethod=manual
let Tlist_Auto_Open=0 " let the tag list open automagically
let Tlist_Compact_Format = 1 " show small menu
let Tlist_Ctags_Cmd = 'ctags' " location of ctags
let Tlist_Enable_Fold_Column = 0 " do show folding tree
let Tlist_Exist_OnlyWindow = 1 " if you are the last, kill yourself
let Tlist_File_Fold_Auto_Close = 0 " fold closed other trees
let Tlist_Sort_Type = "name" " order by
let Tlist_Use_Right_Window = 1 " split to the right side of the screen
let Tlist_WinWidth = 40 " 40 cols wide, so i can (almost always) read my functions

"Ideą, która przyświecała mi przy tworzeniu rozwinięć były dwie literki i "#".
"Wszystko po to aby się nie myliło z normalnym pisaniem. Ten # całkowicie to
"separuje.
ab <ph# <?php echo; ?><left><left><left><left>
ab fo# for($i=0; $i<10; ++$i) {
}<up>A
ab if# if() {
}<Esc><up><End>3<Left>
"W poniższym rozwinięciu ciekawostka jest spacja na końcu wyrażenia.
"Denerewującą cechą rozwinięć jest to, że na końcu każdego wstawiają ten biały znak,
"który je rozwija (np. CR albo spacja). Dzięki temu, że na końcu jest spacja
"poszukiwanie w linii (f) szuka właśnie spacji i dostawia na końcu biały znak
"znajdując się dokładnie na nazwie funkcji.
ab fu# function nazwa_funkcji() {
}<Esc><Up><Home>f
ab $th# $this-><Esc>F-

"Rozwinięcia dla html
ab <ht# <html>
<head>
<title></title>
</head>
<body>

</body>
</html><Esc>3<up>
ab <di# <div class=""></div><Esc><Home>f>
ab <p# <p></p><Esc><Home>f>
ab <fo# <form>
</form><Esc>kFm
ab <ta# <table>
<tr>
<td></td>
</tr>
</table><Esc>2<Up><Home>f>
ab <ul# <ul>
<li></li>
</ul><Esc><Up><Home>f>
ab <li# <li></li><Esc><Home>f>
ab <h1# <h1></h1><Esc><Home>f>
ab <h2# <h2></h2><Esc><Home>f>
ab <h3# <h3></h3><Esc><Home>f>
ab <in# <input id="" name="" type="text" class="" /><Esc>F<3f"
ab <a# <a href="" title=""></a><Esc>4F"
ab cl# class=""<Esc>2F"

"wstawianie nawiasików
map \( <Esc>a('')<Esc><Left>i
map \[ <Esc>a['']<Esc><Left>i
map \{ <Esc>a{
}<Esc><Up>A


"otaczanie
map \h1 <Esc>bi<h1><Esc>ea</h1><Esc>F<
map \h2 <Esc>bi<h2><Esc>ea</h2><Esc>F<
map \h3 <Esc>bi<h3><Esc>ea</h3><Esc>F<
map \sp <Esc>bi<span><Esc>ea</span><Esc>F<
map \a <Esc>bi<a href="" title=""><Esc>ea</a><Esc>3F"

"zakomentowanie linii znaczkiem # (dla Ruby)
map <C-K> mkI#<Esc>`k

"zakomentowanie linii znaczkiem //
map <C-L> mkI//<Esc>`k

"usunięcie wyrazu, na którym stoi kursor
map <C-D> bdw
W następnych wpisach wyjaśnię co ciekawsze fragmenty.

Brak komentarzy:

Prześlij komentarz