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

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

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

nextus
Сообщения: 3
ОС: Arch Linux

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

Сообщение nextus »

доброго времени суток
созрел тут вопрос...с недавних пор лабораторные работы по программированию принимают у нас исключительно при соблюдении венгерской нотации
так вот, можно ли как нибуть осуществить в vim'е, чтобы при объявлении он автоматически приписывал приставку в имени переменнной, исходя из заявленного типа (как то вроде: пишу "float a;", а он автоматически исправляет на "float fltA;" )
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.

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

Сообщение eduard_pustobaev »

nextus писал(а):
16.09.2007 22:39
с недавних пор лабораторные работы по программированию принимают у нас исключительно при соблюдении венгерской нотации

Пардон, но:
Рвать яйца тому, кто такое требует!

P.S. Я не против, когда кто-то самостоятельно ощущает силу венгерской нотации, но прививать такое ученикам - полнейший маразм.
P.P.S. По теме не скажу, с vim'ом работаю только по мелочи.
В дисгармонии со вселенной.
Спасибо сказали:
Аватара пользователя
a1f
Сообщения: 94
ОС: ====8

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

Сообщение a1f »

Как использовать map для разных типов файлов?

У меня есть биндинги типа
imap ( ( )<Esc>hi

очень удобно при написании программ на Ц\Ц++,
Но при написании на bash пишем и получается что то типа $( TARGET ) а надо $(TARGET) т.к первую конструкцию баш не фрештейн
Gentoo Linux / Ubuntu Feisty 7.04, 8.04 / Slackware 10.2 / OpenBSD 4.2
Спасибо сказали:
Аватара пользователя
a1f
Сообщения: 94
ОС: ====8

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

Сообщение a1f »

Всем спасибо за внимание... Решение пришло само собой

~/.vim/ftplugin/

Дайте чо нить почитать про написание собствннный плагинов. Чтоб продвинуться и смогать читать и модифицировать чужие, а то метод научного тыка что то не всегда работает:D
Gentoo Linux / Ubuntu Feisty 7.04, 8.04 / Slackware 10.2 / OpenBSD 4.2
Спасибо сказали:
ganqqwerty
Сообщения: 18
ОС: Fedora 10, Ubuntu

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

Сообщение ganqqwerty »

To a1f
Дайте чо нить почитать про написание собствннный плагинов.

:help plugin <Ctrl+D>. Если пугает английский, скачайте ruVim. На официальнои сайте еще выложена книжка на 500 страниц -про плагины там також есть.
To fugo
а кто поможет мне.. тут такой трабл. у меня не работает backspace в vim... как его включить? а то при нажатие, выводится символ <?

Думаю, вам поможет :help backspace-delete

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

If you prefer backspace and delete in Insert mode to have the old behavior,
put this line in your vimrc:
    [b]inoremap ^? ^H[/b]

Я попробовал - у меня комбинация клавиш Ctrl+? Ctrl+H делает самый настоящий backspace :yes3:
To fugo
...можно ли как нибуть осуществить в vim'е, чтобы при объявлении он автоматически приписывал приставку в имени переменнной, исходя из заявленного типа (как то вроде: пишу "float a;", а он автоматически исправляет на "float fltA;" )

У меня есть идея этакого костыля с помощью дополнения сокращений (смотри :help опечатки и :help сокращения (если нет рувима, то :help type-mistakes и :help abbreviations)). Идея такая - каждый, например, string считать опечаткой и заменять на string s.
Недостатки - непонятно, как быть, к примеру, с членами-данными класса.
To ALL
Ребята, ответьте, хотя бы на один из моих вопросов на предыдущей странице (которые "Серия вопросов"). Кстати, прибавился еще один - примерная схема работы плагина, который по нажатию комбинации клавиш на Названии класса (например \qw на QObject) запускал бы lynx (с помощью lynx.vim или в vimshell) в новом окошке и переходил бы на страницу /usr/doc/qt4/qobject.html

Пока придумал только наметки такого счастья, но с вызовом Konqueror и приостановки работы. :dry:
To eduard_pustobaev:
Эдуард, не оффтопьте, пожалуйста! Многие ссылаются на эту страничку форума как на большое подспорье изучающим vim - не надо его засорять ;)
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.

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

Сообщение eduard_pustobaev »

ganqqwerty писал(а):
18.09.2007 02:58
To eduard_pustobaev:
Эдуард, не оффтопьте, пожалуйста! Многие ссылаются на эту страничку форума как на большое подспорье изучающим vim - не надо его засорять ;)

Всего-то пару постов... Не буду больше.
В дисгармонии со вселенной.
Спасибо сказали:
ganqqwerty
Сообщения: 18
ОС: Fedora 10, Ubuntu

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

Сообщение ganqqwerty »

Ура! Я наконец-то могу реализовать алгоритм показывания страниц html-справки!
1. По комбинации клавиш текущее слово захватывается и приобретает все строчные буквы вместо прописных
2. Затем к нему добавляется остальная часть имени и пути (для QObject - /usr/lib/qt4/doc/core/qobject.htm) и дается команде Lynx из плагина lynx.vim
Вуаля - в новом сплите страничка, аналогичная ассистантовской! Только поиска нема. Выложу плагин на vim.org, когда доделаю.
Кстати, недавно узрел плагин csupport - кратная справка по командам языка C. Тут же пришла мысль - а так ли уж сложно переделать гиперссылки с якорями на вимовские ссылочки? У кого какие идеи?
P.S. Жду ответов хакеров на другие мои вопросы... (предыдущая страница)
P.P.S. По-моему, о страничке забыли... Эх. Устроить, что ли, какой-нибудь холивар :drunk: - Vim против Emacs или что-то в этом духе... :D
Спасибо сказали:
Аватара пользователя
black_wizard
Сообщения: 37
ОС: Ubuntu Linux 8.10

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

Сообщение black_wizard »

У нас в универе стали C# преподавать. Пишу на виме, компилю под моно. Так вот, кто нибудь юзал omnicppcomplete при редактировании C# файлов. Если кто юзал, поделитесь опытом плз.
hp nx8220 || Slackware 11 || icewm 1.2.28 Slackware 12 || icewm 1.2.27 XFCE 4.4.2
JID: black_wizard@unsorted.ru
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

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

Сообщение sash-kan »

поискал в гугле про [авто-]фолдинг sql-файлов. к сожалению, ничего не нашлось.
может быть, кто-то где-то видел уже готовое решение?
а то глупо будет писать велосипед, если уже есть готовый (:
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

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

Сообщение sash-kan »

elide писал(а):
17.10.2004 23:03
можно сделать так, чтобы на команды типа :цй была нормальная реакция?
поискал в теме, не нашел решения.
поэтому (возможно повторно):

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

map Ж :
cmap й q
cmap йф qa
cmap й! q!
cmap цй wq
позволяет не переключаться на англ. раскладку для ввода типичных команд :q :qa :q! :wq
ну, и по аналогии можно и других нужных наштамповать.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
SpeedHack
Сообщения: 116

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

Сообщение SpeedHack »

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

cyclon[~]$ cat .vimrc
nmap <C-F9> :w!<CR>
nmap <C-F10> :q!<CR>
nmap <F2> :!
nmap <F9> :w<CR>
nmap <F10> :q<CR>
set background=dark
set backup
set expandtab
set hlsearch
set ignorecase
set incsearch
set nowrap
set tabstop=4
syntax on


Может кто даст ссылку, где можно на русском почитать описание всех опций? Чтобы составить свой супер-vimrc для мега-удобной работы :)

ЗЫ: Конфиг пока что вроде как у всех, единственное, мне очень нравится такая плющка: нажимаю F2, пишу, например ping example.com, жму ENTER и выполняется написанная команда :) Потом жму ENTER и опять возвращаюсь в vim. Очень удобно :)
Спасибо сказали:
Аватара пользователя
nonstop
Сообщения: 132
ОС: Slackware

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

Сообщение nonstop »

а вот мой vimrc
использую плагины:
vimball, omnicppcomplete, matchit, errormarker, bufexplorer, a, doxygen-support, manpageview, NERD_commenter, taglist
У вас нет необходимых прав для просмотра вложений в этом сообщении.
slackware - linux for human brains
Спасибо сказали:
Аватара пользователя
nonstop
Сообщения: 132
ОС: Slackware

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

Сообщение nonstop »

вдруг кто-то ЛОР не читает
неплохая статья по настройке vim+python
slackware - linux for human brains
Спасибо сказали:
enov
Сообщения: 31
ОС: Suse 10.2, Slackware 12

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

Сообщение enov »

Вот такая мысль мне пришла на счет кавычек, что бы они автодополнялись можно сделать так:

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

inoremap " ""<esc>i

но можно сделать и более интеллектуальное дополнение. Бывает, что надо добавить только одну кавычку, например случайно удалил закрывающую и тогда у тебя вместо одной вставится две, лишнию надо удалять ....
Лучше по моему сделать ф-ю которая будет вызываться при введение кавычки, данная ф-я будет считать количество кавычек в строке или во всем файле и если их будет нечетное количество с только что введеной кавычкой, то только тогда добавлять еще одну кавычку.
Да бы не изобретать велосипед хочу спросить кто-то встречался с такой реализацие, может где-то уже сделали что-то подобное или еще лучше ?
Спасибо сказали:
Аватара пользователя
pento
Сообщения: 403
ОС: Fedora 10

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

Сообщение pento »

enov, основываясь на собственном опыте, могу сказать, что это не особо ускоряет ввод. То есть поставить вторую кавычку ручками не так трудно :)
Спасибо сказали:
Аватара пользователя
ZyX
Сообщения: 355
ОС: Gentoo

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

Сообщение ZyX »

Кстати, в kate есть такаю штука, как "умный" <HOME>. Заключается она в том, что первое нажатие <HOME> отправляет на первый непустой символ, второе - на первый символ в строке. Я это реализовал так:

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

imap OH <C-O>^
inoremap <C-O>^OH <C-O>0
(Вместо квадратиков - символ <C-V><C-[> (<C-V><HOME> дает ^[OH, а использование для этой цели строки "<HOME>" не работает у меня)). Может, будет полезно
Спасибо сказали:
xvadim
Сообщения: 4
ОС: Fedora 7

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

Сообщение xvadim »

Я вставил такой код в ~/.vimrc

Код:

function Loadrc() if (filereadable("./vimrc")) so ./vimrc endif endfunction au VimEnter * call Loadrc()


теперь в каждом каталоге могу создавать файл vimrc с настройками, специфичными для этого каталога. Удобно при программировании.
Спасибо сказали:
pawnhearts
Сообщения: 3

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

Сообщение pawnhearts »

http://spirali.ru/vim.tar.gz
мои кофиги. умное дополнение(по tab в insert mode) программ на python(http://spirali.ru/vim.jpg);
также c-mode,javascript, html, css очень много всего
Спасибо сказали:
Аватара пользователя
ZyX
Сообщения: 355
ОС: Gentoo

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

Сообщение ZyX »

Хотел написать функцию, превращающую файл в HTML (с подсветкой синтаксиса). Оказывается, таковая функция уже имеется: Convert2HTML(startlinenum, endlinenum). Причём в справке об этом ни слова. Единственное но: функция не использует CSS, поэтому попробую я-ка переписать.

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

localhost cups # equery list | grep vim
app-editors/vim-7.1.266
app-editors/vim-core-7.1.266
app-vim/alternate-2.15
app-vim/bnf-syntax-1.2-r1
app-vim/brainfuck-syntax-1.0.1
app-vim/cfengine-syntax-20050105
app-vim/ebnf-syntax-1.1-r1
app-vim/errsign-0.1
app-vim/eselect-syntax-20070506
app-vim/extra-syntax-2
app-vim/fluxbox-syntax-1.5
app-vim/genindent-1.0
app-vim/gentoo-syntax-20070506
app-vim/gtk-syntax-20060423
app-vim/help-extra-syntax-20050106-r1
app-vim/latexsuite-1.5.20060124
app-vim/locateopen-1.3
app-vim/nagios-syntax-20050105
app-vim/nerdcommenter-2.1.6
app-vim/ntp-syntax-20031001
app-vim/pam-syntax-20060424
app-vim/pgn-syntax-1.0
app-vim/selinux-syntax-20040707
app-vim/taglist-4.5
app-vim/toggle-1.3
app-vim/vimcommander-75
app-vim/vimpython-1.11
app-vim/wikipedia-syntax-20050212
app-vim/xquery-syntax-0.1-r1
app-vim/xsl-syntax-0.3.11-r1
UPD: Нет, CSS функция использует. И в справке присутствует, но не как функция, а как команда :TOhtml
Спасибо сказали:
Аватара пользователя
Naruto-kun
Сообщения: 228
Статус: небритый гентушник
ОС: Gentoo(PC)/easypeasy(Netbook)

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

Сообщение Naruto-kun »

не знаю было или нет, но вот кое-что нашёл....
set backspace=2 "разрешает забой через конец строки, автоотступ и начало вставки
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Если на вопрос ни кто не знает ответа, то пора читать описание.
Спасибо сказали:
Аватара пользователя
auro
Сообщения: 3

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

Сообщение auro »

Может кто знает как с cvs нормально из vim работать? Есть замечательный плагин vcscommand, но он не позволяет показать список измененных файлов и из них выбрать какие соммитить(как в emacs). Может кто знает есть ли такая фича вообще?
Спасибо сказали:
evdak
Сообщения: 1
ОС: Ubuntu

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

Сообщение evdak »

Вот хороший учебник по VIM!
Для тех даже кто еще не знает что это такое !
нажми сюда
Спасибо сказали:
Flaming
Сообщения: 2579

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

Сообщение Flaming »

Sonic писал(а):
31.10.2004 07:42
Может это в FAQ засунуть? И по мере возможности дополнять?

serg_sk писал(а):
31.10.2004 08:48
Sonic, пока ИМХО, не стоит, вот когда разговор закончиться, то тоды слепить усе в кучу у в FAQ!

Ну что, ещё не пришло время? Вот сколько страниц надобавлено. :) Мне бы лично пригодилось, ибо всю тему перечитывать - это ППЦ.
Спасибо сказали:
Аватара пользователя
nonstop
Сообщения: 132
ОС: Slackware

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

Сообщение nonstop »

100 Vim commands every programmer should know
добавить сюда еще * и #

vim.SlackBuild для автоматической сборки vim'а + патчи
slackware - linux for human brains
Спасибо сказали:
Аватара пользователя
nonstop
Сообщения: 132
ОС: Slackware

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

Сообщение nonstop »

С удивлением обнаружил катастрофически медленную работу vim'а при редактировании docbook'а на 10к.
Покопавшись в vimrc нашел причину. Оказалось cursorline неимоверно тормозит работу.
По умолчанию я включаю подстветку текущей строки, но для xml сделал исключение, выключил.

Видимо дело в крупных абзацах, которые vim считает одной строкой и cursorline получается на несколько строк.
slackware - linux for human brains
Спасибо сказали:
mikluxo
Сообщения: 283
ОС: Slackware 12.2

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

Сообщение mikluxo »

Товарищи, после установки errormarker.vim у меня появляется данная строка:
Press Enter or type command to continue

В мануале читал, это вроде когда интерактивный ввод ждет(что-то типа того). Так вот, нельзя ли ее убрать как нибудь, излазил много ну никак не дошел еще до этого. Все работает неплохо только нажимать постоянно ентер после компиляции влом, я могу и в quickfix все посмотреть.
И еще такой вопрос, можно ли в errormarker поменять цвет ошибки на красный, а цвет предупреждения оставить желтым?
Ich weiss, dass ich nichts weiss, aber wissen Sie es auch?
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
Спасибо сказали:
Аватара пользователя
ZyX
Сообщения: 355
ОС: Gentoo

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

Сообщение ZyX »

Если кому-то нужно, то мой plugin для транслитерации:
http://kp-pav.narod.ru/translit2/translit2.vim.bz2
И HTML, сгенерированный «:TOhtml»:
http://kp-pav.narod.ru/translit2/translit2.html

Документация где-то в середине файла (388 строчка).
Спасибо сказали:
Аватара пользователя
nonstop
Сообщения: 132
ОС: Slackware

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

Сообщение nonstop »

наткнулся на набор неплохих tip'ов
slackware - linux for human brains
Спасибо сказали:
Аватара пользователя
Luinnar
Сообщения: 246
ОС: Solaris, Debian, Ubuntu

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

Сообщение Luinnar »

nonstop писал(а):
19.01.2009 09:19
наткнулся на набор неплохих tip'ов

Сенкс.
Уже стал генерить тэги по именам файлов:

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

ctags --extra=+f --langdef=file --langmap='file:.c.h.cpp' -R <dir>


Хотя, вот так даже лучше ибо сам ctags почему-то все файлы из папки <dir> заглатывал, а не только *.c *.h *.cpp:

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

find <dir> -type f -name "*.c" -o -name "*.h" -o -name "*.cpp" | ctags -L - --extra=+f --langdef=file --langmap='file:.c.h.cpp'
Спасибо сказали:
Se9a
Сообщения: 67
ОС: openSUSE 11

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

Сообщение Se9a »

вот нашел http://www.railmoon.com/ - описание вэри бест плагинов sourcecodeobedience и 0scan
Спасибо сказали: