Страница 1 из 20
Тонкая настройка vim
Добавлено: 06.10.2004 10:15
Warderer
Господа, как я понимаю, немалое количество обитающих здесь использует редактор vim в качестве постоянного редактора. Давайте делиться с другими всевозможными полезностями, которые у вас прописаны в .vimrc? С пояснениями? Из самого простого:
syntax on " включить подсветку синтаксиса.
set autoindent " установить автоотступ
Продолжите?
Re: Тонкая настройка vim
Добавлено: 06.10.2004 10:26
JaGoTerr
set expandtab " вставлять пробелы, а не табы
set softtabstop=4 " величина отступа
ЗЫ: тока у меня это в ~/.exrc , если кому важно
Re: Тонкая настройка vim
Добавлено: 06.10.2004 10:59
flook
map <F5> :wa^V^M:make^V^M
map <F6> :cope^V^M
map <F7> :cp^V^M
map <F8> :cn^V^M
собрать дерево, посмотреть на ошибки прыгнуть на следующую и на предыдущую соответственно.
Re: Тонкая настройка vim
Добавлено: 06.10.2004 11:10
Warderer
Ух, хорошо пошло! Спасибо! Продолжаем? Тема-то благодатная...
Re: Тонкая настройка vim
Добавлено: 06.10.2004 11:57
madskull
set ignorecase
игнорировать прописные/строчные при поиске
set background=dark
насильно заставить его считать, что терминал с темным фоном (у меня, почему-то, в x-терминалах он считает, что фон белый и делает соответствующую расцветку синтаксиса)
highlight Comment ctermfg=darkgreen
указать цвет комментариев
set langmap=Ж:,йq,цw,уe,кr,еt,нy,гu,шi,щo,зp,х[,ъ],фa,ыs,вd,аf,пg,рh,оj,лk,дl,э',яz,чx,сc,мv,иb,тn,ьm,б\,,ю.,ё`
возможность использовать команды при русской раскладке
set hlsearch
при поиске помечать все найденные строки
set incsearch
при поиске перескакивать на найденный текст в процессе набора строки
PS Раз уж зашел разговор о vim'е - напомните комбинацию клавиш, которая восстанавливает "Визуальное выделение". Вылетело из головы, а в хелпе найти не могу.
Re: Тонкая настройка vim
Добавлено: 06.10.2004 19:03
xorader
во... модифицировал свой соот-о:
Код: Выделить всё
$ cat .vimrc
syntax on " включить подсветку синтаксиса.
set nowrap " не разрывать строку
set backup " создавать .bak файлы (по умолчанию <oldname>~)
set autoindent " установить автоотступ
colorscheme elflord " меням цветовую схему
set sidescroll=5 " прокрутка вправо/влево когда строка заежает за край и вы по ней ползаете
set listchars+=precedes:<,extends:> " показывать символы > или < если есть, что слева/справа строки
set ignorecase " игнорировать прописные/строчные при поиске
set incsearch " при поиске перескакивать на найденный текст в процессе набора строки
" указать цвет комментариев
highlight Comment ctermfg=darkgrey
" собрать дерево, посмотреть на ошибки прыгнуть на следующую и на предыдущую соответственно.
map <F5> :wa^V^M:make^V^M
map <F6> :cope^V^M
map <F7> :cp^V^M
map <F8> :cn^V^M
" возможность использовать команды при русской раскладке
set langmap=Ж:,йq,цw,уe,кr,еt,нy,гu,шi,щo,зp,х[,ъ],фa,ыs,вd,аf,пg,рh,оj,лk,дl,э',яz,чx,сc,мv,иb,тn,ьm,б\,,ю.,ё`
" насильно заставить его считать, что терминал с темным фоном
" set background=dark
Добавлено:
виртуальное выделение: "ctrl+v" -- это ? или просто "v" ищешь ?
закончить выделение клавишей "y" (заносит выделеное в буфер)
или "d" (удалить выделеное и занести в буфер удалённое)
это ?
Re: Тонкая настройка vim
Добавлено: 06.10.2004 22:34
madskull
(xorader @ Среда, 06 Октября 2004, 19:03) писал(а):Добавлено:
виртуальное выделение: "ctrl+v" -- это ? или просто "v" ищешь ?
закончить выделение клавишей "y" (заносит выделеное в буфер)
или "d" (удалить выделеное и занести в буфер удалённое)
это ?
Почти. Например, выделяю я по Ctrl+V, делаю что-то, скажем ">" увеличиваю отступ, или заменяю в выделенном. После любого действия выделение пропадает. Так вот, есть какая-то кнопочка, когда выделение снова появляется и можно продолжать работать с этим блоком.
Блин, хреновая вещь - склероз. Долго пользовался этой "кнопочкой", но потом просто вылетело из головы...
Re: Тонкая настройка vim
Добавлено: 07.10.2004 10:52
xorader
вспомнишь - скажи, тоже интересно
Re: Тонкая настройка vim
Добавлено: 07.10.2004 14:07
madskull
Таки гугль рулит.
надо нажать: gv
И вообще, нашел
http://www.vim.org/htmldoc/quickref.html
Полезная весчь
Re: Тонкая настройка vim
Добавлено: 07.10.2004 23:26
sdk
А вот мои примочки:
1. Так как я кодю на C++, мне очень нравиться такая штука:
inoremap { {<CR>}<Esc>O
И т.о. как только я нажимаю в insert-mode { у меня вставляются сразу открывающая и закрывающая фигурные скобки, и курсор позиционируется на новой строчке между ними. Причем insert-mode не убирается, поэтому можно сразу писать дальше код
.
Я уже очень к этой привязке привык
. Пробовал сделать нечто похожее с круглыми скобками, но как-то не прижилось, убрал.
2. Еще у меня есть строка
Код: Выделить всё
autocmd VimLeavePre * silent mksession ~/.vim/lastSession.vim
При выходе сохраняет все открытые буферы, маппинги и еще много чего
.
Иногда (когда нужно восстановить последнюю сессию работы) я делаю ":source ~/.vim/lastSession.vim".
3. Так как у меня vim -- дефолтный $EDITOR везде, включая и mc, то я забацал
Потому как с давних пор (когда еще вима не знал) сильно пристрастился выходить по F10 из mc-шного вьювера и редактора
.
4. Еще до смерти привык к автодополнению Tab-ом:
Много еще чего есть (копилось года полтора), но файл .vimrc на работе, а это я (будучи дома) первое что вспомнилось написал
.
Re: Тонкая настройка vim
Добавлено: 08.10.2004 01:01
madskull
Не, у меня F10 давно замаплен на :x
А F11 на :q!
Но всё равно интересно посмотреть на твой .vimrc который на работе
Re: Тонкая настройка vim
Добавлено: 12.10.2004 15:48
brazhe
Wow!
Клёво, а у меня особо ничего нет
(кое-что из приведенных выше neat-things оюязательно вставлю в свой .vimrc)
Часто открыто много файлов,
что бы удобнее было переходить:
nmap <F3> :bp<CR>
imap <F3> <ESC> :bp<CR>i<Right>
nmap <F4> :bn<CR>
imap <F4> <ESC> :bn<CR>i<Right>
Кстати, почему-то у меня при
set langmap ...
не работает буфер "* (то есть при попытке "*yy) только бибикает
Если строчку с langmap закомментировать, то работает.
И еще, никто не пользовался VimNotes? Что за зверь?
Re: Тонкая настройка vim
Добавлено: 12.10.2004 16:04
madskull
Вопрос в тему про несколько открытых файлов:
Для редактирования нескольких файлов одновременно я делаю:
из командной строки: vi -o file1 file2
в виме: :sp file2
Получается окно, разделенное на н-цать частей. Довольно удобно.
Но не всегда нужно.
А вот как бы еще сделать, чтоб можно было редактировать несколько файлов в "полноэкранном" режиме. Т.е., как если бы сделать vi file1 file2
Но! При этом можно было бы переходить между ними не сохраняя их?
А то несколько раздражает сохранять каждое изменение перед :bp :bn (мало того, иногда даже это совсем не нужно).
Re: Тонкая настройка vim
Добавлено: 13.10.2004 11:02
JaGoTerr
2madskull:
Если правильно понял вопрос, то ответ, собственно, элементарный:
Код: Выделить всё
nmap <F5> :bp!<CR>
imap <F5> <Esc>:bp!<CR>a
nmap <F6> :bn!<CR>
imap <F6> <Esc>:bn!<CR>a
Можно ещё финт ушами сделать... Если не очень много файлов открыто (скажем так - не более 10, хотя ограничение взято практически с потолка и влияет лишь на удобство работы).
Так вот... Открываешь каждый файл в отдельном окне. Все они расположены друг над другом (то есть обычный :split). И перемещаешься между ними следующими биндингами:
Код: Выделить всё
nmap <F7> <C-W>k<C-W>_ " окно вверх
imap <F7> <Esc><C-W>k<C-W>_a " окно вверх
nmap <F8> <C-W>j<C-W>_ " окно вниз
imap <F8> <Esc><C-W>j<C-W>_a " окно вниз
имхо, прикольно.
Re: Тонкая настройка vim
Добавлено: 13.10.2004 11:12
madskull
Про перемещение между окнами - естесственно известно, ибо как же тогда работать. Но 8 окошек - это круто
Тут три открываешь - уже неудобно...
А про "!" как-то я не догадался...
Re: Тонкая настройка vim
Добавлено: 13.10.2004 12:55
JaGoTerr
(madskull @ Среда, 13 Октября 2004, 10:12) писал(а):Про перемещение между окнами - естесственно известно, ибо как же тогда работать. Но 8 окошек - это круто
Тут три открываешь - уже неудобно...
Так в том и "финт ушами", что каждое раскрывается на максимально возможное пространство. Для этого там на конце <C-W>_ и прописано. То есть активное окно - большое, а остальные занимают всего лишь по две строчки каждое. И к тому же всегда видно какие окна открыты и куда листать (вперёд или назад), чтобы найти нужное.
ЗЫ: Что-то у меня подозрение, что ты не попробовал
, а поэтому недопонял, как же это доолжно работать (и работает!).
ЗЗЫ: А вообще эта тема меня натолкнула на попытки настроить себе вим посерьёзнее, чем было. Настроил
Вечером закину сюда. Хотя в большинстве своём это просто развитие тех "идей", что были высказаны здесь + недолгое чтение хелпа.
Re: Тонкая настройка vim
Добавлено: 13.10.2004 13:11
madskull
(JaGoTerr @ Среда, 13 Октября 2004, 12:55) писал(а):(madskull @ Среда, 13 Октября 2004, 10:12) писал(а):Про перемещение между окнами - естесственно известно, ибо как же тогда работать. Но 8 окошек - это круто
Тут три открываешь - уже неудобно...
Так в том и "финт ушами", что каждое раскрывается на максимально возможное пространство. Для этого там на конце <C-W>_ и прописано. То есть активное окно - большое, а остальные занимают всего лишь по две строчки каждое. И к тому же всегда видно какие окна открыты и куда листать (вперёд или назад), чтобы найти нужное.
Сорри, действительно на "_" не обратил внимание. Вот теперь рулез! Самое оно! Спасибо!
Re: Тонкая настройка vim
Добавлено: 13.10.2004 20:42
JaGoTerr
Вот мой нынешний вариант .vimrc, если кому-то ещё интересна тема
Код: Выделить всё
set autoindent
set tabstop=4
set softtabstop=4
set shiftwidth=4
set smarttab
set expandtab
colors desert
syntax on
set background=dark
set ignorecase
set smartcase
set hlsearch
set incsearch
set nowrap
set listchars+=precedes:<,extends:>
set sidescroll=5
set sidescrolloff=5
set guifont=terminus
" автодополнение фигурной скобки (так, как я люблю :)
imap {<CR> {<CR>}<Esc>O<Tab>
" автодополнение по Control+Space
imap <C-Space> <C-N>
" 'умный' Home
nmap <Home> ^
imap <Home> <Esc>I
" выход
imap <F12> <Esc>:qa<CR>
nmap <F12> :qa<CR>
" сохранение текущего буфера
imap <F2> <Esc>:w<CR>a
nmap <F2> :w<CR>
" сохранение всех буферов
imap <S-F2> <Esc>:wa<CR>a
nmap <S-F2> :wa<CR>
" список буферов
imap <S-F4> <Esc>:buffers<CR>
nmap <S-F4> :buffers<CR>
" закрыть буфер
imap <C-F4> <Esc>:bd<CR>a
nmap <C-F4> :bd<CR>
" открыть буфер
imap <F3> <Esc>:e<Space>
nmap <F3> :e<Space>
" следующий буфер
imap <F6> <Esc>:bn!<CR>a
nmap <F6> :bn!<CR>
" предыдущий буфер
imap <F5> <Esc>:bp!<CR>a
nmap <F5> :bp!<CR>
" окно ниже и развернуть
imap <C-F8> <Esc><C-W>j<C-W>_a
nmap <C-F8> <C-W>j<C-W>_
" окно выше и развернуть
imap <C-F7> <Esc><C-W>k<C-W>_a
nmap <C-F7> <C-W>k<C-W>_
" окно ниже
imap <F8> <Esc><C-W>ja
nmap <F8> <C-W>j
" окно выше
imap <F7> <Esc><C-W>ka
nmap <F7> <C-W>k
" окно левее
imap <S-F7> <Esc><C-W>ha
nmap <S-F7> <C-W>h
" окно правее
imap <S-F8> <Esc><C-W>la
nmap <S-F8> <C-W>l
" сборка с сохранением
imap <F9> <Esc>:wa<CR>:make<CR>
nmap <F9> :wa<CR>:make<CR>
" пересборка с сохранением
imap <C-F9> <Esc>:wa<CR>:make<Space>clean<CR>:make<CR>
nmap <C-F9> :wa<CR>:make<Space>clean<CR>:make<CR>
" открыть окно результатов компиляции
imap <S-F9> <Esc>:copen<CR>
nmap <S-F9> :copen<CR>
" следующая ошибка
imap <C-F10> <Esc>:cn<CR>i
nmap <C-F10> :cn<CR>
" предыдущая ошибка
imap <S-F10> <Esc>:cp<CR>i
nmap <S-F10> :cp<CR>
" вкл/выкл отображения номеров строк
imap <F1> <Esc>:set<Space>nu!<CR>a
nmap <F1> :set<Space>nu!<CR>
" вкл/выкл отображения найденных соответствий
imap <S-F1> <Esc>:set<Space>hls!<CR>a
nmap <S-F1> :set<Space>hls!<CR>
Re: Тонкая настройка vim
Добавлено: 13.10.2004 22:16
sdk
2madskull:
Про переключение буферов без сохранения: ты просто обязан стянуть с www.vim.org из раздела scripts плагин miniBufExplorer!
Один из первых (если упорядочить по рейтингу). Он мало того, что позволяет перескакивать без сохранения между буферами (при этом визуально обозначая буферы с несохраненными изменениями), но и еще позволяет включить ИМХО очень удобную фичу: по разделенным окнам можно скакать используя CTRL- {h,j,k,l} вместо обычных CTRL-W CTRL-W ... И это ИМХО сильно удобнее чем приведенные выше варианты. Во всяком случае, я так к этому привык, что жизнь моя без этой фичи теряет краски :lol:.
А свой .vimrc принести с работы я буду забывать еще очень долго
.
Re: Тонкая настройка vim
Добавлено: 14.10.2004 10:06
Warderer
добавил себе
set showmatch " проверка скобок
set history=500 " увеличение истории команд
filetype plugin on
filetype indent on
set undolevels=100
set ttyfast
Редактирование в vim благодаря нашим общим усилиям становится все удобнее и удобнее! Это просто праздник какой-то!
Re: Тонкая настройка vim
Добавлено: 15.10.2004 17:41
madskull
(sdk @ Среда, 13 Октября 2004, 22:16) писал(а):2madskull:
Про переключение буферов без сохранения: ты просто обязан стянуть с www.vim.org из раздела scripts плагин miniBufExplorer!
Один из первых (если упорядочить по рейтингу). Он мало того, что позволяет перескакивать без сохранения между буферами (при этом визуально обозначая буферы с несохраненными изменениями), но и еще позволяет включить ИМХО очень удобную фичу: по разделенным окнам можно скакать используя CTRL- {h,j,k,l} вместо обычных CTRL-W CTRL-W ... И это ИМХО сильно удобнее чем приведенные выше варианты. Во всяком случае, я так к этому привык, что жизнь моя без этой фичи теряет краски :lol:.
А свой .vimrc принести с работы я буду забывать еще очень долго
.
Что-то не работает. Точнее, в чистой консоли работают CTRL- {h,j,k,l} , но не работают CTRL+стрелки. А в х-терминале - ничего не работает.
Re: Тонкая настройка vim
Добавлено: 15.10.2004 21:36
sdk
А там надо какую-то переменную в 1 установить по-моему. По умолчанию это все выключено. Почитай начало скрипта (там где описание идет).
Кстати, я сегодня на работе от нечего делать написал два "текстовых скринсэйвера" под вим (в смысле на вимовском языке). Они просто делают всякие штучки-дрючки с текстом в текущем окне (типа zone-out в emacs-e)
. Никто не хочет глянуть/потестировать?
Re: Тонкая настройка vim
Добавлено: 15.10.2004 23:13
madskull
(sdk @ Пятница, 15 Октября 2004, 21:36) писал(а):А там надо какую-то переменную в 1 установить по-моему. По умолчанию это все выключено. Почитай начало скрипта (там где описание идет).
Да это-то поставил, конечно. Все равно не едут лыжи...
Re: Тонкая настройка vim
Добавлено: 16.10.2004 01:16
elide
Никто не хочет глянуть/потестировать?
зачем спрашивать? клади. кому надо сами стянут. я - стяну! (:
Re: Тонкая настройка vim
Добавлено: 17.10.2004 15:51
JaGoTerr
Ну да, я бы тоже попробовал сие чудо
Re: Тонкая настройка vim
Добавлено: 17.10.2004 19:47
sdk
ОК, положу, но не раньше завтра, потому как сие чудо я оставил на работе
.
А если проклятая простуда завтра не пройдет и я решу поболеть дома денек, то послезавтра
.
2madskull:
Хм-м-м, тогда странно. У меня все фурыкает.
Re: Тонкая настройка vim
Добавлено: 17.10.2004 23:03
elide
sdk
ну ты уж если на работу-то пойдешь, то и конфиг притащи заодно (: а то ведь опять забудешь (:
Добавлено:
люди, решил я тут себе настроить langmap... вроде как работает, но только в коммандном режиме. а вот при переходе в линейный... можно сделать так, чтобы на команды типа :цй была нормальная реакция?
Re: Тонкая настройка vim
Добавлено: 18.10.2004 01:07
sdk
Я вот тоже бы не прочь, чтобы не было :цй, но, цитирую хелп:
Символы вашего языка будут восприниматься как обычные латинские символы в соответствии с таблицей, заданной в значении данной опции, в следующих случаях:
o в Обычном/Визуальном режиме (команды, имена буферов и регистров,
пользовательские привязки)
o в режиме Вставки/Замены: имена регистров после ввода CTRL-R
o в режиме Вставки/Замены: привязки
Символы, которые вводятся в режиме командной строки, никак не затрагиваются настройками данной опции.
Re: Тонкая настройка vim
Добавлено: 18.10.2004 23:52
elide
не... ну это я читал... я думал, может какой workaround есть для этого дела...
Добавлено:
люди, а давайте колитесь, кто и что имеет для удобного использования фолдинга!
я вот нашел на том же vim.org плагин AutoFold... но или он сишный текст уж очень как-то странно сворачивает, или я чего-то не понимаю...
Re: Тонкая настройка vim
Добавлено: 19.10.2004 11:01
madskull
(elide @ Понедельник, 18 Октября 2004, 23:52) писал(а):не... ну это я читал... я думал, может какой workaround есть для этого дела...
Добавлено:
люди, а давайте колитесь, кто и что имеет для удобного использования фолдинга!
я вот нашел на том же vim.org плагин AutoFold... но или он сишный текст уж очень как-то странно сворачивает, или я чего-то не понимаю...
Я тоже ковырялся, пытался под перл фолдинг сделать. Не работает при старте, хоть ты тресни. Пришлось пока забить, до времени, когда будет время и желание.