Модераторы: ZeeLax, powerfox

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Vim, Удобство работы 
:(
    Опции темы
CyClon
Дата 22.11.2007, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Кто как работает в vim? Какой эмулятор консоли юзаем (или GVIM?), какая цветовая схема, какие опции (.vimrc), для какого языка?

.vimrc
Код
colorscheme desert
set softtabstop=4


Юзаю пока что Konsole (Т.к. DE - KDE, хотя сам эмулятор жутко не нравится). Цвета - зеленый на черном. Язык - PHP.

ЗЫ: Может кто даст ссылку на описание опций vim (которые можно прописать в .vimrc), на русском, или, хотя бы,  на английском?


--------------------
user posted image
PM   Вверх
bilbobagginz
Дата 22.11.2007, 16:53 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 28
Всего: 317



Цитата(CyClon @  22.11.2007,  16:28 Найти цитируемый пост)
ЗЫ: Может кто даст ссылку на описание опций vim (которые можно прописать в .vimrc), на русском, или, хотя бы,  на английском?

к сожалению, нет. полный список опций редактора и его возможностей доступен только купившим лицензионную коробочную версию.



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
JackYF
Дата 22.11.2007, 17:07 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 3
Всего: 162



Цитата(bilbobagginz @  22.11.2007,  16:53 Найти цитируемый пост)
к сожалению, нет. полный список опций редактора и его возможностей доступен только купившим лицензионную коробочную версию.


+1. главное, не пытаться искать ман по vim в системе.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
nickless
Дата 22.11.2007, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 18
Всего: 181



Цитата(CyClon @  22.11.2007,  14:28 Найти цитируемый пост)
Какой эмулятор консоли юзаем

А какая разница? Как говорится на вкус и цвет...

Цитата(CyClon @  22.11.2007,  14:28 Найти цитируемый пост)
какая цветовая схема

См. пункт 1

Цитата(CyClon @  22.11.2007,  14:28 Найти цитируемый пост)
какие опции (.vimrc)

.vimrc (во всяком случае у меня) наполняется постепенно, как найду что-нибудь интересное - добавляю.

Если интересно, вот мой .vimrc:
Код
syntax on
set nocompatible
filetype plugin indent on   "enable filetype detection and indentitation

set shiftwidth=4
set tabstop=4
set expandtab               "use spaces instead of tabs
set smartindent
set formatoptions=tcroqln1  "break text and comments after small words, recognize numbered lists and do not break intentionally long lines
"set formatoptions+=a        "also break while inserting, not good for sources
set foldmethod=marker       "fold on fold markers {{{ ... }}}

set textwidth=100
set tpm=100                 "tab page max
set nu                      "line numbers
set ruler                   "show cursor position
set nostartofline           "stay in current column when paging
set wildmenu                "enhanced tab-completion for cmdline

set backspace=2             "delete everywhere with backspace in insert modus
"fixdel                      "try this if backspace and del are not working properly

"make and debug hotkeys and settings
"set makeprg=scons           "set program to execute whet typing :make to scons
set makeprg=make            "set program to execute whet typing :make to default
:map <F9> :tabnew<CR>:make<CR>
:map <F8> :cnext<CR>
:map <F7> :cprevious<CR>
:imap <F9> <ESC>:tabnew<CR>:make<CR>
:imap <F8> <ESC>:cnext<CR>
:imap <F7> <ESC>:cprevious<CR>

"set encoding=utf-8          "utf-8 input incoding
"set fileencoding=utf-8      "utf-8 file encoding
"set bomb                    "enable BOM writing

set background=dark
set hlsearch
hi search ctermbg=Green     "set green background for search highlighting for terminals
hi search guibg=Green       "set - // - for gui
hi Pmenu ctermbg=Brown guibg=Brown gui=Bold     "omnicomplete menu color
hi PmenuSel ctermbg=Gray ctermfg=Black          "omnicomplete selected menu item color
"hi clear                    "use this to get rid of custom highlighting settings
set ignorecase              "case-insensitive search
set smartcase               "but search case-sensitive if there are uppercase letters is search string

set modeline                "enable those lines with settings

"exuberant ctags tags databases for omnicompletion
"create these files with 'ctags -R --c++-kinds=+p --fields=+iaS --extra=+q -f OUT_FILE IN_DIRECTORIES
set tags+=~/.vim/qt4tags    "Qt4        ~/.vim/qt4tags /usr/include/qt4
set tags+=~/.vim/sqlitetags "SQLite     ~/.vim/sqlitetags /usr/include/sqlite*
set tags+=~/.vim/stltags    "STL        ~/.vim/stltags /usr/lib/gcc/i686-pc-linux-gnu/*/include
"1.4GB !!!
"set tags+=~/.vim/boosttags  "Boost      ~/.vim/boosttags /usr/include/boost

"for latexsuite
set grepprg=grep\ -nH\ $*

"enable cmake syntax highlighting
:autocmd BufRead,BufNewFile *.cmake,CMakeLists.txt,*.cmake.in runtime! indent/cmake.vim
:autocmd BufRead,BufNewFile *.cmake,CMakeLists.txt,*.cmake.in setf cmake

"use cindent for C/C++ files
:autocmd BufRead,BufNewFile *.c,*.C,*.cpp,*.cc,*.h,*.hpp,*.H set nosmartindent cindent cinoptions=>s,e0,n0,f0,{0,}0,^0,:s,=2s,l0,b0,g0,hs,ps,ts,is,+s,c3,C0,/0,(2s,us,U0,w0,W0,m0,j0,)5,*30,#0
":autocmd BufRead,BufNewFile *.c,*.C,*.cpp,*.cc,*.h,*.hpp,*.H imap ( ()<ESC>i

"recognize doxygen style comments for C/C++ files and set autoformatting for comments
:autocmd BufRead,BufNewFile *.c,*.C,*.cpp,*.cc,*.h,*.hpp,*.H set com=s1\:/**\ ,m\:*\ \ ,ex\:*/,s1\:/*,mb\:*\ ,ex\:*/,\:///\ ,\:// flp=^\\(\\s*\\*\ \ @\\)\\\|\\(//\\) fo=croqaln1 tw=100

"options for scons files
:autocmd BufRead,BufNewFile SConstruct,SConscript,SInstall set ft=python tw=100 fo-=a com=b\:#\ \ ,b\:#\
"workaround for german bash :D
":autocmd BufRead phun-de.txt imap <Space><Space>< <CR><
:autocmd BufRead phun-de.txt imap <Space>< <CR><

"configuration for PHP
:autocmd BufRead,BufNewFile *.php,*.phtml set com=s1\:/*\ ,m\:*\ ,ex\:*/,\:// flp=^\\(\\s*\ @\\)\\\|\\(//\\) fo=croqaln1

"enable closetag script
":autocmd Filetype html,xml,xsl source /usr/share/vim/vimfiles/plugin/closetag.vim

"disable fucking cursor blinking in gvim
:set guicursor=n-v-c:block-Cursor/lCursor-blinkon0,ve:ver35-Cursor-blinkon0,o:hor50-Cursor-blinkon0,i-ci:ver25-Cursor/lCursor-blinkon0,r-cr:hor20-Cursor/lCursor-blinkon0,sm:block-Cursor-blinkon0


" " " key mappings " " "
"toggle paste/nopaste mode
set pastetoggle=<F11>
"rebuild ctags batabase for omnicompletion
:map <F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
"insert date/time
:map <Leader>d !!date '+\%d \%b \%Y'<CR>
:map <Leader>D !!date '+\%A, \%-d \%B \%Y'<CR>
:map <Leader>t !!date '+\%T'<CR>
:map <Leader>T !!date '+\%T'<CR>
:map <Leader>T !!date '+\%T \%A, \%-d \%B \%Y'<CR>
:map <Leader>s !!date '+\%s'<CR>
:map tf :tabe <cfile><CR>
"test
":imap <a> <a ></a><ESC>4hi
":imap <body> <body></body><ESC>6hi

"key mappings for non-UTF8 TeX documents
":autocmd BufRead,BufNewFile *.tex imap ä \"a
":autocmd BufRead,BufNewFile *.tex imap ö \"o
":autocmd BufRead,BufNewFile *.tex imap ü \"u
":autocmd BufRead,BufNewFile *.tex imap Ä \"A
":autocmd BufRead,BufNewFile *.tex imap Ö \"O
":autocmd BufRead,BufNewFile *.tex imap Ü \"U
":autocmd BufRead,BufNewFile *.tex imap ß \ss


"enable German spell checking:
":setlocal spell spelllang=de


"remember to run :helptags .vim/doc after installing some plugins with helpfiles


Это сообщение отредактировал(а) nickless - 22.11.2007, 21:02


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
Mayk
Дата 22.11.2007, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: нет
Всего: 134



самое интересное у меня без сомнения в ~/.vim/plugin/smart-completition.vim [что-то подобное было в vimtips]
Код

function! s:TryFilenameComplete()
    let cline = getline(line("."))
    let filename_match = '.*\%'.col('.').'c.*'

    let include_head = '^#\s*include\s*'

    " find include statement 
    if cline !~ include_head . '\(<'.filename_match.'>\?\|"'.filename_match.'"\?\)'
        return ""
    endif

    let result = "\<C-X>\<C-F>"

    " find if closing quote/bracket required
    let qt_neccesary = cline =~ include_head . '"[^"]*$'
    let br_neccesary = cline =~ include_head . '<[^>]*$'

    if qt_neccesary
        let result = "\"\<Left>" . result
    elseif br_neccesary
        let result = ">\<Left>" . result
    endif


    return result
endfunction


function! SmartCompletition()
    let fn = s:TryFilenameComplete()
    if fn != ""
        return fn
    endif

    let cline = getline(line("."))
    let under_cursor = cline[col(".")-2]
    if under_cursor =~ "[A-Za-z0-9_]"
        return "\<C-P>"
    endif
    return "\<C-I>"
endfunction


inoremap <expr> <Tab> SmartCompletition()

вообще это штука модифицирует поведение <Tab>а. Если перед курсором стоит то, что может быть началом слова, то выполняется простое автодополнение [как по ctrl-n]. Если же курсор стоит в строке

#include "<вот-тут курсор>"

то нажатие на tab приводит к дополнению до имён файлов. 

ну из прочего интересного в .vimrc
Код

map <C-J> yy:call PushCol()<CR>p:call PopCol()<CR>
map <C-U> yy:call PushCol()<CR>P:call PopCol()<CR>
imap <C-J> <ESC>yy:call PushCol()<CR>p:call PopCol()<CR>a
imap <C-U> <ESC>yy:call PushCol()<CR>P:call PopCol()<CR>a

они дублируют строку, но не перемещают column курсор'а.



это использую в с++ 
Код

imap ##l #include ""<LEFT>
imap ##g #include <><LEFT>
imap ##u using
imap ##n namespace
imap ##d #define




Код

set scrolloff=9999
map <C-\> :s/\s\+$/<cr>$
vmap <C-\> :s/\s\+$/<cr>$
imap <C-\> ^O:s/\s\+$/<cr><end>

по нажатию на ctrl-\ в строке/строках убираются пробельные символы в конце строк.

есть ещё команды для комментирования/раскомментирования текста [вроде для этого есть спец плагин, ну да ладно]
Код

vmap %%%    :s/^/%/<cr>:let @/=""<cr>
vmap %%<del>    :s/^\([     ]*\)%/\1/<cr>:let @/=""<cr>
vmap ###    :s/^/#/<cr>:let @/=""<cr>
vmap ##<del>    :s/^\([     ]*\)#/\1/<cr>:let @/=""<cr>
vmap ///    :s+^+//+<cr>:let @/=""<cr>
vmap //<del>    :s/^\([     ]*\)\/\//\1/<cr>:let @/=""<cr>
vmap //.    :s/^\([     ]*\)\/\//\1/<cr>:let @/=""<cr>
vmap ;;;    :s/^/;/<cr>:let @/=""<cr>
vmap ;;<del>    :s/^\([     ]*\);/\1/<cr>:let @/=""<cr>



ну и совсем не интересные аббревиатуры для Java'ы
Код

abbr <silent> Zspl System.out.println( )^O1<left>
abbr <silent> Zpst printStackTrace()
iabbr <silent> Eaioob ArrayIndexOutOfBoundsException( )<left>
iabbr <silent> Enpe NullPointerException( )<left>
iabbr <silent> Ecnse CloneNotSupportedException( )<left>
iabbr <silent> Ecce ClassCastException
iabbr <silent> Eiae IllegalArgumentException

Zspl моя любимая  аббра smile 

ну и статус
Код

set laststatus=2
set statusline=%{MyStatText()}%<%f\ %h%m%r%=%-14.(%l,%c%V%)%B\ %P

MyStatText в настоящий момент ничего полезного не делает.

Это сообщение отредактировал(а) Mayk - 22.11.2007, 18:55


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
nickless
Дата 22.11.2007, 19:14 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 18
Всего: 181



Забыл сказать про скрипты, для них тоже куча настроек в моём .vimrc smile 
Использую
OmniCppComplete, это вроде intellisence
SmartTabs, настраиваимое автодополнение на <TAB> (Mayk, знаешь о таком?)
EnhancedCommentify, комментирование текста
Alternate, быстрое переключение между *.c(pp) / *.h
TagList, навигация по методам/классам/итд
Больше не помню smile 


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
Mayk
Дата 22.11.2007, 19:29 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: нет
Всего: 134



Цитата(nickless @  22.11.2007,  23:14 Найти цитируемый пост)

SmartTabs, настраиваимое автодополнение на <TAB> (Mayk, знаешь о таком?)

Цитата

This script allows you to use your normal tab settings for the beginning of the line, and have tabs expanded as spaces anywhere else.  This effectively distinguishes 'indent' from 'alignment'.   
 
ыы, не, мне expandtab'а хватает. 

кстати, а вот и нашёлся vimtip, где рассказывалось про автодополнения на tab.
комментарии там жгут


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
CyClon
Дата 23.11.2007, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Я уже замучался... Есть такие, кто юзает KDE + VIM + PHP? Никак не могу выбрать норм подсветку. В консоли выбираю схему Green on Black (как мне кажется, наиболее контрастная). Открываю в vim php файл. Все как-то темно... Пишу set backgorund=dark. Все светлеет, но некоторые элементы покрашены в такие цвета, которые очень сложно различать с черным фоном (например #0000FF и ему подобные).


--------------------
user posted image
PM   Вверх
bilbobagginz
Дата 23.11.2007, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 28
Всего: 317



Цитата

Все как-то темно... Пишу set backgorund=dark. Все светлеет, но некоторые элементы покрашены в такие цвета, которые очень сложно различать с черным фоном (например #0000FF и ему подобные).

сделай себе свою схему цветов, на основе уже существующей.


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
smartov
Дата 25.11.2007, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 4
Всего: 259



bilbobagginz, 
JackYF, 
Цитата(bilbobagginz @  22.11.2007,  15:53 Найти цитируемый пост)
к сожалению, нет. полный список опций редактора и его возможностей доступен только купившим лицензионную коробочную версию.

Я ползал smile
PM MAIL   Вверх
Любитель
Дата 25.11.2007, 02:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: нет
Всего: 92



Цитата(bilbobagginz @  22.11.2007,  16:53 Найти цитируемый пост)
к сожалению, нет. полный список опций редактора и его возможностей доступен только купившим лицензионную коробочную версию.

Ужос smile


--------------------
PM MAIL ICQ Skype   Вверх
bilbobagginz
Дата 25.11.2007, 03:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 28
Всего: 317



жестокий мир. тяжелое детство... ну что вы хотите ?  smile 


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
CyClon
Дата 25.11.2007, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Цитата
сделай себе свою схему цветов, на основе уже существующей. 


Ну, а может есть уже готовые? Или кто-то поделится своей? А то у меня что-то не очень получается :\


--------------------
user posted image
PM   Вверх
nickless
Дата 25.11.2007, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 18
Всего: 181



Цитата(CyClon @  25.11.2007,  16:09 Найти цитируемый пост)
Ну, а может есть уже готовые?

Навалом


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
CyClon
Дата 26.11.2007, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Жуткий гемор с этими консолями, установил GVIM, стало проще smile Меню и Toolbar убрал через опции и от консольного не отличишь smile


--------------------
user posted image
PM   Вверх
Fally
Дата 21.8.2008, 14:09 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 17.8.2006
Где: Dahla

Репутация: нет
Всего: 4



Мой .vimrc:
Код

set ai " включаем автоотступ
set expandtab " вместо табов ставим пробелы
set softtabstop=4 " один таб == 4 пробела
set shiftwidth=4
syntax on " включаем подсветку синатаксиса

set smartindent " включаем умные отступы

"""""""""""""""""""""""""""""""""""""""""""""""""
set ignorecase " игнорируем регистр при поиске
set smartcase
"""""""""""""""""""""""""""""""""""""""""""""""""

set background=dark " терминал всегда с тёмным фоном

set nohlsearch " при поиске не помечать всё найденное
set incsearch " поиск при вводе

set nobackup " отключаем бэкап данных

" Автодополнение табом
imap <Tab> <C-N>

" После набора { и <Enter> рисовать вторую скобку.
imap {<CR> {<CR>}<Esc>O

set nu " нумерация строк
set showmatch " проверка скобок

set history=500

filetype plugin on
filetype indent on

set undolevels=100 " память отмен

set mouse=a " с поддержкой мыши
set mousemodel=popup

set nowrap

set listchars+=precedes:<,extends:> " показывать, когда строка выходит за края экрана
set sidescroll=5
set sidescrolloff=5

set termencoding=utf-8
set encoding=utf-8

autocmd FileType python     set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html       set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css        set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml        set omnifunc=xmlcomplete#CompleteTags
autocmd FileType php        set omnifunc=phpcomplete#CompletePHP
autocmd FileType c          set omnifunc=ccomplete#Complete

let &errorformat="%f:%l: %t%*[^:]:%m," . &errorformat

" Настройки для Python-плагина
let python_highlight_all = 1

" Теперь <leader> - это точка
let mapleader = "."

" Настройки TagList'а
let Tlist_File_Fold_Auto_Close=1
let Tlist_GainFocus_On_ToggleOpen=1
let Tlist_Close_On_Select=1

" Настройка NERD_Commenter
let g:NERDUncomLineMap='<leader>C'

" Настройка BufExplorer
let g:bufExplorerSplitBelow=1
let g:bufExplorerSplitRight=1
let g:bufExplorerSplitVertical=1
let g:bufExplorerUseCurrentWindow=1

" Исправляем конфликты vcscommand.vim и NERD_Commenter
nmap <Leader>va <Plug>VCSAdd
nmap <Leader>vn <Plug>VCSAnnotate
nmap <Leader>vc <Plug>VCSCommit
nmap <Leader>vd <Plug>VCSDiff
nmap <Leader>vg <Plug>VCSGotoOriginal
nmap <Leader>vG <Plug>VCSGotoOriginal!
nmap <Leader>vl <Plug>VCSLog
nmap <Leader>vL <Plug>VCSLock
nmap <Leader>vr <Plug>VCSReview
nmap <Leader>vs <Plug>VCSStatus
nmap <Leader>vu <Plug>VCSUpdate
nmap <Leader>vU <Plug>VCSUnlock
nmap <Leader>vv <Plug>VCSVimDiff

set foldmethod=indent " Фолдинг по отступам.
set nofoldenable

" При выходе сохранить все открытые буферы.
autocmd VimLeavePre * silent mksession ~/.vim/lastSession.vim

" более привычные Page Up/Down, когда курсор остаётся в той же строке,
" (а не переносится в верх/низ экрана, как при стандартном PgUp/PgDown)
" Поскольку по умолчанию прокрутка по C-Y/D происходит на полэкрана,
" привязка делается к двойному нажатию этих комбинаций.
nmap <PageUp> <C-U><C-U>
imap <PageUp> <C-O><C-U><C-O><C-U>

nmap <PageDown> <C-D><C-D>
imap <PageDown> <C-O><C-D><C-O><C-D>

" Теперь нет необходимости передвигать курсор к краю экрана, чтобы подняться
" в режиме редактирования
set scrolljump=7

" Теперь нет необходимости передвигать курсор к краю экрана, чтобы
" опуститься в режиме редактирования
set scrolloff=7

" Выключаем надоедливый 'звонок'
set novisualbell
set t_vb= 

" Не выгружать буфер, когда переключаемся на другой
" Это позволяет редактировать несколько файлов в один и тот же момент без
" необходимости сохранения каждый раз
" когда переключаешься между ними
set hidden

" Сделать строку команд высотой в одну строку
set ch=1

" Скрывать указатель мыши, когда печатаем
set mousehide

" Формат строки состояния
set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P\ %{strftime(\"%a\ %b\ %d\ -\ %H:%M\")}
set laststatus=2

set autoread " автоматически обновляем буфер, если
             " файл изменился извне.

" Текущий терминал поддерживает 256 цветов.
set t_Co=256

" Вертикальная граница текста - 80 символов.
set tw=80

" Не использовать .swp-файл
set noswapfile

" Автозавершение слов по tab =)
function InsertTabWrapper()
    let col = col('.') - 1
    if !col || getline('.')[col - 1] !~ '\k'
        return "\<tab>"
    else
        return "\<c-p>"
    endif
endfunction
imap <tab> <c-r>=InsertTabWrapper()<cr>

" Слова откуда будем завершать
set complete=""
" Из текущего буфера
set complete+=.
" Из словаря
set complete+=k
" Из других открытых буферов
set complete+=b
" из тегов 
set complete+=t

" Отключаем Replace-mode
map R <Esc>
imap <Ins> <Esc>

" Убрать '----'  в фолдингах
set fillchars=vert:\ ,fold:\ 

" Анализ синтаксиса при печати.
set popt+=syntax:y

" Сдвигаем номера строк от границы.
set foldcolumn=2

"""""""""""""""""""""""""""""""""""""""""""
" Горячие клавиши.
"""""""""""""""""""""""""""""""""""""""""""

" CTRL-F для omni completion
imap <C-F> <C-X><C-O>

" Пробел в нормальном режиме перелистывает страницы
nmap <Space> <PageDown>

" Дописываем скобки
imap [ []<LEFT>
imap ( ()<LEFT>

" Выходим по Ctrl-Q
map <C-Q> <Esc>:qa<CR>

" F2 - быстрое сохранение
nmap <F2> :w<cr>
vmap <F2> <esc>:w<cr>i
imap <F2> <esc>:w<cr>i

" F3 - просмотр ошибок
nmap <F3> :copen<cr>
vmap <F3> <esc>:copen<cr>
imap <F3> <esc>:copen<cr>

" F5 - просмотр списка буферов
nmap <F5> <Esc>:BufExplorer<cr>
vmap <F5> <esc>:BufExplorer<cr>
imap <F5> <esc><esc>:BufExplorer<cr>

" F6 - предыдущий буфер
map <F6> :bp<cr>
vmap <F6> <esc>:bp<cr>i
imap <F6> <esc>:bp<cr>i

" F7 - следующий буфер
map <F7> :bn<cr>
vmap <F7> <esc>:bn<cr>i
imap <F7> <esc>:bn<cr>i

" F8 - список закладок
map <F8> :MarksBrowser<cr>
vmap <F8> <esc>:MarksBrowser<cr>
imap <F8> <esc>:MarksBrowser<cr>

" F9 - make команда
map <F9> :make<cr>
vmap <F9> <esc>:make<cr>i
imap <F9> <esc>:make<cr>i

" F10 - удалить буфер
map <F10> :bd<cr>
vmap <F10> <esc>:bd<cr>
imap <F10> <esc>:bd<cr>

" F11 - показать окно Taglist
map <F11> :TlistToggle<cr>
vmap <F11> <esc>:TlistToggle<cr>
imap <F11> <esc>:TlistToggle<cr>

" F12 - Показать Project
map <F12> :Project<cr>
vmap <F12> <esc>:Project<cr>
imap <F12> <esc>:Project<cr>

" окно ниже
imap <C-DOWN> <Esc><C-W>ja
nmap <C-DOWN> <C-W>j

" окно выше
imap <C-UP> <Esc><C-W>ka
nmap <C-UP> <C-W>k
 
" окно левее
imap <C-LEFT> <Esc><C-W>ha
nmap <C-LEFT> <C-W>h
 
" окно правее
imap <C-RIGHT> <Esc><C-W>la
nmap <C-RIGHT> <C-W>l

"Настраиваем тему xterm16
let xterm16_brightness = 'default'     " Change if needed
let xterm16_colormap = 'soft'       " Change if needed
colo xterm16 


Установленные плагины: TagList, BufExplorer, MarksBrowser, Project, NERD_Commenter, PdV (Для автогенерации PHP-doc блоков)  а также приятная глазу тема xterm16


--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
nickless
Дата 22.8.2008, 03:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 18
Всего: 181



Добавил/изменил с прошлого раза:

Код

"wrap width (see also marker below)
set textwidth=100
"emulate static word wrap marker
hi WarpMarker ctermbg=darkred guibg=darkred
autocmd WinEnter,BufRead,BufNew * match WarpMarker /\%101v./

set linebreak               "break long lines on a caracter set in 'breakat'
set breakat=\ \ ;:,?        "line is wrapped _after_ those characters
set showbreak=>>\ \         "print this in front of wrapped lines


" " " functions " " "


" append current date in given format
function VIMRC_Date(fmt)
    :return feedkeys(mode() == "i" ? "" : "a" . strftime(a:fmt))
endfunction

" move current tab to the right
function VIMRC_TabMoveRight()
    let destTab = tabpagenr()
    if destTab == tabpagenr("$")
        let destTab = 0
    endif
    :call feedkeys(":tabmove " . destTab . "\<CR>")
endfunction

" move current tab to the left
function VIMRC_TabMoveLeft()
    let destTab = tabpagenr()
    if destTab == 1
        let destTab = tabpagenr("$")
    else
        let destTab = destTab-2
    endif
    :call feedkeys(":tabmove " . destTab . "\<CR>")
endfunction


" " " key mappings " " "


"insert date/time
map <Leader>d :call VIMRC_Date("%d %b %Y")<CR>
imap þd <ESC>:call VIMRC_Date("%d %b %Y")<CR>
map <Leader>D :call VIMRC_Date("%A, %-d %B %Y")<CR>
imap þD <ESC>:call VIMRC_Date("%A, %-d %B %Y")<CR>
map <Leader>t :call VIMRC_Date("%T")<CR>
imap þt <ESC>:call VIMRC_Date("%T")<CR>
map <Leader>T :call VIMRC_Date("%T %A, %-d %B %Y")<CR>
imap þT <ESC>:call VIMRC_Date("%T %A, %-d %B %Y")<CR>
map <Leader>s :call VIMRC_Date("%s")<CR>
imap þs <ESC>:call VIMRC_Date("%s")<CR>
map <Leader>S :call VIMRC_Date("%Y-%m-%d %R")<CR>
imap þS <ESC>:call VIMRC_Date("%Y-%m-%d %R")<CR>

"follow link
map + <C-]>

"show list of lines matching word under cursor
map <C-I> [I

"nice shortcuts from eclipse
"move current line up/down
map <A-Up> :move .-2<CR>
map <A-Down> :move .+1<CR>
imap <A-Up> <ESC>:move .-2<CR>a
imap <A-Down> <ESC>:move .+1<CR>a

"move current word left/right
map <A-Left> lBdWBPB
map <A-Right> lBdWWPB
imap <A-Left> <ESC>llBdWBPBi
imap <A-Right> <ESC>llBdWWPBi

"move current char left/right
map <S-Left> xhP
map <S-Right> xp
imap <S-Left> <ESC>lxhPi
imap <S-Right> <ESC>lxpi

"move current tab to the right/left
map <A"make and debug hotkeys and settings (see :compiler settings for file types above)
"set makeprg=scons           "set program to execute whet typing :make to scons
"set makeprg=make            "set program to execute whet typing :make to default
map <F9> :make<CR>
map <C-F9> :tabnew<CR>:make<CR>
map <F8> :cnext<CR>
map <F7> :cprevious<CR>
map <F6> :cwindow<CR>
imap <F9> <ESC>:make<CR>
imap <C-F9> <ESC>:tabnew<CR>:make<CR>
imap <F8> <ESC>:cnext<CR>
imap <F7> <ESC>:cprevious<CR>
imap <F6> <ESC>:cwindow<CR>

"C/C++ shortcuts
autocmd BufRead,BufNewFile *.c,*.C,*.cpp,*.cc,*.h,*.hpp,*.H :imap #inl #include "<++>"<HOME><Plug>IMAP_JumpForward
autocmd BufRead,BufNewFile *.c,*.C,*.cpp,*.cc,*.h,*.hpp,*.H :imap #ing #include <<++>><HOME><Plug>IMAP_JumpForward
autocmd BufRead,BufNewFile *.c,*.C,*.cpp,*.cc,*.h,*.hpp,*.H :imap #ifd #ifdef <++><CR><CR>#endif<Up><Up><END><Plug>IMAP_JumpBack
autocmd BufRead,BufNewFile *.c,*.C,*.cpp,*.cc,*.h,*.hpp,*.H :imap #ifn #ifndef <++><CR>#define<Space><CR><CR>#endif<Up><Up><Up><END><Plug>IMAP_JumpBack-PageDown> :call VIMRC_TabMoveRight()<CR>
map <A-PageUp> :call VIMRC_TabMoveLeft()<CR>

" add include file for type name under cursor (without .h), uses register i and mark i
autocmd BufRead,BufNewFile *.c,*.C,*.cpp,*.cc,*.h,*.hpp,*.H :noremap <Leader>i milb"iye?^#include<CR>o#include <><ESC>Pg'i:noh<CR>


В некоторых маппингах нагло используются функции IMAP_JumpBack/Forward из установленной LaTeX-Suite (aka Vim-LaTeX)



--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
pythonwin

В этом форуме предпочтительны вопросы на следующие темы:

  • Конкретные вопросы о конкретном ПО. В таких вопросах желательно привести точные данные о программе: версия программы, версия ОС, версия ядра, и проблему в форме: сделал Х, хотел получить Y, а получил Z.
  • Неконкретные вопросы о выборе ПО
  • Обзоры - как дополнение в ветку Обзоры


  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программное обеспечение под *NIX системы | Следующая тема »


 




[ Время генерации скрипта: 0.0728 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.