Тонкая настройка vim (делимся полезностями в .vimrc. Вопросы задавайте в отдельных темах!)

и другие vi-подобные редакторы

Модератор: /dev/random

Akademic
Сообщения: 10

Re: Тонкая настройка vim

Сообщение Akademic »

Справился с этим.
Оказалось, что у меня langmap не совсем правильно сделан.
Спасибо сказали:
jsv
Сообщения: 67

Re: Тонкая настройка vim

Сообщение jsv »

Беспорядочные комментарии ко всей нитке сразу:
JaGoTerr писал(а):
13.10.2004 12:55
Так в том и "финт ушами", что каждое раскрывается на максимально возможное пространство. Для этого там на конце <C-W>_ и прописано.
Есть чуть более элегантный "финт ушами": set wh=999 и тогда в мэпах ^W_ не требуется. Вообще, манипулируя переменными семейства winheight, можно забавные вещи творить. :)
madskull писал(а):
01.11.2004 22:16
А как дату/время вставить?
Решение, легче переносимое между платформами, чем "r!date" -- использовать встроенную в vim функцию strftime. Например, через аббревиатуру:

Код: Выделить всё

iab Ydate ^R=strftime("%d.%m.%Y")<cr>
iab Ytime ^R=strftime("%X")<cr>

(^R -- это один символ, вбитый через ^V^R)

Dark_Savant писал(а):
17.10.2005 14:28
кстати, товарищи, как ликвидировать статусбар ? вообще чтоб. а то при чтении художки мешает %) laststatus=0 - просто переносит на командлайн.

Странно, у меня и при laststatus=1 статусбар замечательно пропадает при единственном открытом окне.
Только ruler остаётся, но он не мешает. А если мешает, :set noruler должно помочь. :)

Из кажется-неупомянутого (прошу прощения за возможные повторы):

Есть незаменимый при редактировании конфигов плагин Тoggle, позволяющий нажатием одной кнопки менять yes на no, true на false и т.п. Судя по подозрительно низкой карме этого скрипта, он нравится только мне :mellow:

Другие плагины, которыми постоянно пользуюсь:
ManPageView -- смотрелка манов, более удобная, чем !man.
Enhanсed Commentify -- кодокомментатор.
NetDict -- интерфейс к dictd.
Align -- выравнимание кода и не только по самым разным критериям. Могучая вещь, требующая требующая некоторых усилий для изучения и настройки. Но усилия эти вполне окупаются.

Очень полезно определить что-то вроде:

Код: Выделить всё

set pastetoggle=<F11>

и перед вставкой из внешнего clipboard нажимать эту самую <F11>. Прощайте, тесты "лесенкой" :)

Печать (через :hardcopy) 2-х страниц на лист:

Код: Выделить всё

function! TwoPage_Print(fname)
    call system("lpr -o number-up=2 " . a:fname)
    call delete(a:fname)
    return v:shell_error
endfunction

set printexpr=TwoPage_Print(v:fname_in)


Автоматическая смена рабочего каталога при смене буфера:

Код: Выделить всё

function! Safe_cd ()
    let path=expand('%:h')
    let path=substitute(path,"^.\\{-1,}:","","")
    if isdirectory(path)
        execute "cd " . path
    endif
endfunction

au BufEnter * call Safe_cd()


Удаление пустых отквоченных строк при ответе из mutt'a:

Код: Выделить всё

au BufReadPost /tmp/mutt-* sil %s/^\(>\s*\)\+$//e


Хватит пока. Неисчерпаемая тема сокобана, конечно, не раскрыта, но как-нибудь в другой раз. :)
Спасибо сказали:
Аватара пользователя
Dark_Savant
Бывший модератор
Сообщения: 1100
Статус: киборг
ОС: Cyborg OS 0.0.1.3

Re: Тонкая настройка vim

Сообщение Dark_Savant »

попробовал toogle - класcная штука. действительно странно, что столь замечательный плугин малопопулярен.
I'm a tragic hero
In this game called life
My chances go to zero
But I always will survive
Спасибо сказали:
-=hip=-
Сообщения: 3

Re: Тонкая настройка vim

Сообщение -=hip=- »

Подскажите, плз, как закоментировать несколько строк. Пока смотрю в сторону Enhanсed Commentify. Но что-то не въеду как его подключить :( Пните в нужном направлении.

Мож еще кто чем пользуется?

Спасибо.
Спасибо сказали:
jsv
Сообщения: 67

Re: Тонкая настройка vim

Сообщение jsv »

-=hip=- писал(а):
21.03.2006 19:57
Подскажите, плз, как закоментировать несколько строк. Пока смотрю в сторону Enhanсed Commentify. Но что-то не въеду как его подключить :( Пните в нужном направлении.

Скачать, извлечь в ~/.vim, сделать :helptags ~/.vim/doc и потом читать :help EnhancedCommentify, пока не надоест :)

По-умолчанию он вешается на \c. Соответственно, чтобы закомментировать несколько строк, выделяешь их в visual mode и жмёшь эти самые \c. Остальные подробности в документации.
Спасибо сказали:
-=hip=-
Сообщения: 3

Re: Тонкая настройка vim

Сообщение -=hip=- »

(jsv @ Mar 22 2006, в 13:38) писал(а):Скачать, извлечь в ~/.vim, сделать :helptags ~/.vim/doc и потом читать :help EnhancedCommentify, пока не надоест smile.gif


читал...просветления не наступило :-\ англишем владею не в совершенстве..

конкретизирую вопросы:

1) у плагина, я так понял, есть настройки по умолчанию. в vimrc прописываются только отступления от свойств по умолчанию, или я не прав? в догонку, всегда ли при подключении плагина его надо прописывать в vimrc?

2) что в Вашей системе обозначений значит \c ?

зы. всегда пользовался вимом с минимальными настройками в vimrc и без плагинов... захотел расширить функциональность, поэтому столько вопросов.
Спасибо сказали:
jsv
Сообщения: 67

Re: Тонкая настройка vim

Сообщение jsv »

-=hip=- писал(а):
22.03.2006 15:09
1) у плагина, я так понял, есть настройки по умолчанию. в vimrc прописываются только отступления от свойств по умолчанию, или я не прав? в догонку, всегда ли при подключении плагина его надо прописывать в vimrc?

Если умолчания устраивают, можно в vimrc ничего не прописывать. А в некоторых простых плагинах так вообще ничего не настраивается, так что и прописывать нечего.

Про EnhancedCommentify у меня в vimrc только это:

Код: Выделить всё

let g:EnhCommentifyPretty = 'Yes'
let g:EnhCommentifyBindInInsert = 'No'


-=hip=- писал(а):
22.03.2006 15:09
2) что в Вашей системе обозначений значит \c ?

Нажать кнопку '\', потом нажать кнопку 'c'.
Первая кнопка может быть и не '\', это зависит от значения переменной mapleader. По умолчанию там обычно '\'.
Спасибо сказали:
-=hip=-
Сообщения: 3

Re: Тонкая настройка vim

Сообщение -=hip=- »

ОГРОМНЫЙ ПАСИБ!!!
Спасибо сказали:
Аватара пользователя
indie
Сообщения: 87

Re: Тонкая настройка vim

Сообщение indie »

Подскажите что нужно добавить в конфиг, что бы в режиме вставки по ctrl+backspace удалялись все символы до предыдущего слова (ну или разделителя)?
Спасибо сказали:
Аватара пользователя
xorader
Сообщения: 1030
Статус: собирающий миры
ОС: Debian
Контактная информация:

Re: Тонкая настройка vim

Сообщение xorader »

Поставил сегодня vim-7.0_beta, vim-spell-ru и vim-spell-en. Нарисовал в конфиге:

Код: Выделить всё

"...
set spellfile=~/.vim/spell/ru.utf-8.add

set wildmenu
set wcm=<Tab>
menu VVspell.enable_ru          :setlocal spell spelllang=ru<CR>
menu VVspell.enable_en          :setlocal spell spelllang=en<CR>
menu VVspell.enable_enru        :setlocal spell spelllang=en,ru<CR>
menu Encoding.koi8-r            :e ++enc=koi8-r<CR>
menu Encoding.windows-1251      :e ++enc=cp1251<CR>
menu Encoding.ibm-866           :e ++enc=ibm866<CR>
menu Encoding.utf-8             :e ++enc=utf-8<CR>
menu Encoding.SpellMenu         :emenu VVspell.<TAB>
map <F8> :emenu Encoding.<TAB>
"...


Красота! B)
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
Спасибо сказали:
whisper
Сообщения: 2

Re: Тонкая настройка vim

Сообщение whisper »

Вопрос не совсем по vim. Насмотрелся я на эти все советы, начал мапить всё и вся. И обнаружил, что единственный теминал, который понимает все комбинации с Ctrl, Alt, Shift - это встроенный в GVim. Остальные игнорируют либо неправильно их интерпритируют. А хотелось бы запускать его в чём-нибудь полегче. У кого какой был в этом вопросе опыт? Кстати, локаль - утф8, так что смотрю в сторону xterm/urxvt.
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Тонкая настройка vim

Сообщение elide »

хм. у меня очень многие сочетания с контролом и альтом вообще до терминала не доходят, потому как их еще оконный манагер выкусывает (:
с другой стороны, я даже то, что у меня в конфиг вбито не всегда использую, продолжая тупо хреначить команды, так у меня там мало сочетаний. а если много - совсем запутаться можно.
так что, удачи тебе в поисках. но я вот ничего в свое время не нашел, забил на все это, и не жалею теперь.
слава роботам!
Спасибо сказали:
Аватара пользователя
xorader
Сообщения: 1030
Статус: собирающий миры
ОС: Debian
Контактная информация:

Re: Тонкая настройка vim

Сообщение xorader »

обычный xterm решает все проблемы (в своё время кучу терминалов перепробовал - в результате вернулся к нему)
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
Спасибо сказали:
whisper
Сообщения: 2

Re: Тонкая настройка vim

Сообщение whisper »

потому как их еще оконный манагер выкусывает (:
Не, встроенный в GVim терминал-то их понимает.
я даже то, что у меня в конфиг вбито не всегда использую
Я клавиатурщик, к хоткеям - особая любовь.
продолжая тупо хреначить команды
Конечно, и к ним можно привыкнуть (уже начинаю), но это не выход, иногда хочется замапить что-то совсем головоломное.
обычный xterm решает все проблемы
у меня он не ловит не Ctrl ни Alt.
Спасибо сказали:
Аватара пользователя
GRS
Сообщения: 236
Статус: C++ Pro
ОС: Suse10.2/XP

Re: Тонкая настройка vim

Сообщение GRS »

У меня вот такой вопрос. Извините, если он покажится вам глупым и легко решаемым. Так вот я только вчера начал его изучать, то что продолжу несомненно, вот еще все странички сохраню, чтобы его под себя настроить. Мой вопрос касается настройки, а именно дейсвтия undo. vi делает undo только один раз? Т.е. я в файле наделал изменений, вхожу в командый режим, и нажимаю "u", он отменяет последнее изменение, я нажимаю еще раз, чтобы он начал отменить еще и предыдущие, но он этого не делает. Вместо этого он опять делает, то что я отменил и получается цикл - убрать/вставить. Я правда еще не пробовал с числом эту команду давать, но можно ли настроить так, что undo можно было делать много раз?
Спасибо сказали:
CompoVod
Сообщения: 27

Re: Тонкая настройка vim

Сообщение CompoVod »

GRS писал(а):
11.05.2006 08:22
У меня вот такой вопрос. Извините, если он покажится вам глупым и легко решаемым. Так вот я только вчера начал его изучать, то что продолжу несомненно, вот еще все странички сохраню, чтобы его под себя настроить. Мой вопрос касается настройки, а именно дейсвтия undo. vi делает undo только один раз? Т.е. я в файле наделал изменений, вхожу в командый режим, и нажимаю "u", он отменяет последнее изменение, я нажимаю еще раз, чтобы он начал отменить еще и предыдущие, но он этого не делает. Вместо этого он опять делает, то что я отменил и получается цикл - убрать/вставить. Я правда еще не пробовал с числом эту команду давать, но можно ли настроить так, что undo можно было делать много раз?

vi именно так и делает (как ты описал). Многократный undo появился в vim. Соответственно, надо его поставить.
Спасибо сказали:
Аватара пользователя
GRS
Сообщения: 236
Статус: C++ Pro
ОС: Suse10.2/XP

Re: Тонкая настройка vim

Сообщение GRS »

У меня в vim не работает tab, так как надо, то есть автодополнение. Можно ли исправить?
Спасибо сказали:
jsv
Сообщения: 67

Re: Тонкая настройка vim

Сообщение jsv »

GRS писал(а):
14.05.2006 08:38
У меня в vim не работает tab, так как надо, то есть автодополнение. Можно ли исправить?

Не работает где? Если в коммандной строке, то, cкорее всего, надо смотреть в сторону опций wildchar, wildmode и wildmenu.
Если же не работает дополнение по табу в набираемом тексте (в режиме вставки), то оно и не должно (подробнее -- :help i_^X).
Хотя, есть плагин supertab (где-то выше в этой нитке я давал ссылку), который вешает дополнение на таб.
Спасибо сказали:
galki
Сообщения: 231

Re: Тонкая настройка vim

Сообщение galki »

xorader писал(а):
24.04.2006 11:22
обычный xterm решает все проблемы (в своё время кучу терминалов перепробовал - в результате вернулся к нему)

Обчный xterm чернобелый.
Спасибо сказали:
bear-cub
Сообщения: 20

Re: Тонкая настройка vim

Сообщение bear-cub »

sdk писал(а):
19.10.2004 22:53
madskull
Попробуй вот так: (пришлось пошерудить доки)

Код: Выделить всё

:set foldmethod=expr
:set foldexpr=getline(v:lnum)=~'^sub'&&getline(v:lnum+1)=~'^{'?'>1':getline(v:lnum)=~'}'?'s1':'-1'


У меня на тестовом примере заработало :).

ЗЫ. В виме нет ничего невозможного -- убеждаюсь снова и снова! :thumbsup:

Надеюсь топик еще не умер ;)

Пробовал делать такое же с другими коментариями, но у меня не вышло.
Может кто нить сможет мне помочь?

Коментарий начала складки такой: --<бла бла>
Коментарий окончания складки такой: --<\бла бла>
(это SQL)
Думаю можно как то определить по первым 4 символам,
но у меня не получается, все складывается в одну складку.

Начало вкладки я определил так (привожу только само выражение) ^--<[^\/].*$
А окончание складки так: ^--<\/.*$
Но это не работает.

Спасибо
Спасибо сказали:
Pieron
Сообщения: 51

Re: Тонкая настройка vim

Сообщение Pieron »

как в виме автоматом начинать новый комментарий? В емаксе по умолчанию это M-;
т.е. пишешь:
some_actions(); нажимаешь <M-;> и на эту же строку вставляется коммент

в доках так этого и не наешел
EnchancedCommentify комментирует только существующую строку.
Спасибо сказали:
jsv
Сообщения: 67

Re: Тонкая настройка vim

Сообщение jsv »

Pieron писал(а):
29.06.2006 13:49
как в виме автоматом начинать новый комментарий? В емаксе по умолчанию это M-;
т.е. пишешь:
some_actions(); нажимаешь <M-;> и на эту же строку вставляется коммент

в доках так этого и не наешел
EnchancedCommentify комментирует только существующую строку.

Можно посмотреть в сторону NERD Commenter, там что-то такое есть. Правда, он вставляет просто в конец строки, а не равняется по comment-column, как в емаксе.

Чтобы делать выравненные комментарии справа от текста, проще всего, наверное, вбивать их как бог на душу положит (для этого вообще никаких плагинов не надо, в крайнем случае можно mapping определить :) ), а потом равнять Align'ом.
Сам я так и делаю. Хотя я вообще комментарии в конце строк не люблю, так что делаю я это нечасто. :)
Спасибо сказали:
Pieron
Сообщения: 51

Re: Тонкая настройка vim

Сообщение Pieron »

Второй вопрос: пользовался ли кто нибудь штукой под названием OmniCppCompletion?
Мне никак заставить ее работать нормально не удается:
для функций в глобальном пространстве имен она работает.
с функциями стандартной библиотеки тоже более менее.
а вот когда пишешь такую вещь:
temp.h:
class Test
{
private:
int k;
public:
int get_k() { return k; }
};

temp.cpp:
Test test;
test. /* Здесь должно высветиться фукнция get_k() . Но почему то это дело не работает (C-x C-o) */
тег файл генерируется правильно: командой: exuberant-ctags -Ra --fields=iaS --extra=+q --c++-kinds=+p
:tag Test работает пра-но.
Спасибо сказали:
Аватара пользователя
pento
Сообщения: 403
ОС: Fedora 10

Re: Тонкая настройка vim

Сообщение pento »

Всем привет!
Не подскажете , как можно сделать подсветку скобок, в том числе и фигурных, в виме?
Спасибо сказали:
sdk
Бывший модератор
Сообщения: 210

Re: Тонкая настройка vim

Сообщение sdk »

Обновиться до 7-ой версии ;)
Серьезность - это способ сделать простые вещи сложными.
Если много знать - устанут глаза. Если много спать - то нет.
Нас никому не сбить с пути - нам пофигу куда идти.
:-)
Спасибо сказали:
Аватара пользователя
pento
Сообщения: 403
ОС: Fedora 10

Re: Тонкая настройка vim

Сообщение pento »

(sdk @ Jul 4 2006, в 01:11) писал(а):Обновиться до 7-ой версии wink.gif

Спасибо =)
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Тонкая настройка vim

Сообщение elide »

7 версия вообще аццки жжот.
слава роботам!
Спасибо сказали:
Аватара пользователя
pento
Сообщения: 403
ОС: Fedora 10

Re: Тонкая настройка vim

Сообщение pento »

sdk
А не подскажете, как это сделать в 7-ке?
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга
Контактная информация:

Re: Тонкая настройка vim

Сообщение madskull »

sdk
А не подскажете, как это убрать в 7-ке?
:D
ArchLinux / IceWM
Спасибо сказали:
jsv
Сообщения: 67

Re: Тонкая настройка vim

Сообщение jsv »

:help matchparen, оба :D
Спасибо сказали:
Ответить