Pull to refresh

Comments 128

Для меня очень актуально для меня =) как раз сегодня этим вопросом хотел заморочится =) Спасибо!
кстати а как насчет банделсов? как в textmate?
Честно говоря, никогда в глаза textmate не видела. Может скажешь поконкретнее что именно нужно? А я уже посмотрю у себя как это делается или найду плагин.
ну к примеру вводиш echo жмеш tab получаеш echo 'string'; // и курсор находится на string
или к примеру ifelse -> tab
получаеш:
if (condition)
{
# code…
}
else
{
# code…
}
ну я поняла. В комменте выше ответила. Просто на моем этапе изучения языка, мне это пока не нужно
В стандартной надстройке, которую я использовала здесь этого нет, но можно настроить. В интернете что-то по этой теме есть, но надо искать.

Вообще плагины для вима пишутся на какой-то модификации лиспа. Более человекоподобной. И построено все как раз на них.
Лисп тут ни при чем. У vim свой язык для написания скриптов.
Там что-то подобное… Похоже на лисп, но в более упрощенном варианте.
И совсем не похоже. Больше всего он похож на BASIC. В том смысле, что синтаксис строки кода определяется командой.

call MyFunc(myArg)

но

let myVar = MyFunc(myArg)

И вообще, очень велик шанс, что для vim8 скрипты уже будем писать целиком на Python. Сейчас же к нему есть только интерфейс из vim script.
«if has(»autocmd")
" au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
" \| exe «normal! g'\»" | endif
«endif

а разве есть такие конструкции в бэйсике? Там и ифы в середину строки не вставляются, и комментарии через одинарную кавычку, а не двойную. Кстати, я не знаю ни одного языка, где комментарии обозначались бы двойной кавычкой. Больше похоже на какой-то язык вывода. м?
И BASIC и vim script — командные ЯП. В обоих языках синтаксис строки определяется ключевым словом-командой, с которого она начинается. На этом их сходства заканчиваются.

Кстати, " — команда, означающая комментарий. т.е. начинает комментарий только если находится в начале строки, в остальных случаях — это строковые кавычки.
ну это-то понятно. Просто понять что это конкретно проблематично. Вот и предположила
кто-то минусанул, значит знает что это за язык) просветите, пожалуйста
UFO just landed and posted this here
Вы тут путаете понятия. Bundles в Textmate — это наборы. В них входят команды, сниппеты, макросы, описания синтаксиса и т.д.
То что вы назвали Bundle на самом деле Snippet.
Поправь скриншот, а то он не кликабельный
а он и не кликабельный. Вот залила большего размера. Кликабельный. У меня там самое основное. Вряд ли что-либо особенно интересное можно найти)
А какая тема оформления Гнома на скрине? :)
скачала из интернета. Creamy Black. Хз найдешь ли ты ее же… Но тема приятная.
Спасибо большое за название. Нашел. Поставил. Понравилось. :)

Для тех, кому тоже приглянулась темка, вот ссылочка: gnome-look.org/content/show.php/Creamy?content=69315

Прошу прощения за оффтоп в каментах.
скриншот… что находится в предпоследнем снизу файле? :)
Хорошая статья
В этом файле находится сравнительный анализ тестов серверов. Там 30 различных организаций жесткий дисков, вообще пространства и т.д.

Наверное пройдусь как-нибудь по нему. Не по самим логам, конечно. А распишу что лучше использовать, почему… Но это позже.

Спасибо
Меня шокирует сочетание слов «Женщина» и «линукс».
Пишите пожалуйста много и чаще.
… с уважением =)
Обращать на это внимание — всё равно что показывать пальцем на негра на улице.
Незнаю как неграм, но всегда думал что женщинам внимание нравится, тем более что я ничего плохого не имел ввиду, наоборот
ничего себе сравнение!
UFO just landed and posted this here
UFO just landed and posted this here
Я работаю с автополнонением через exuberant tags. Там автодополнение идет по словарю, то есть он подставляет варианты из тех слов что знает. Я сомневаюсь что средствами плагинов можно сделать автодолнение в зависимости от контекста для каждого языка.
UFO just landed and posted this here
настраиваем, но для того, чтобы понять что и в каком контексте используется, необходимо компилировать код. Или я что-то неправильно понимаю
UFO just landed and posted this here
Парсят. Выделяют переменные, классы, методы функции в отдельном окошке тагов, если его открывать. Я не ковырялся особо, может быть и можно их настроить хорошо. Но в стандартной настройки они работают просто как словарь.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Не, чтобы получить полностью контекстное автодополнение — надо эвалить код. И делается это средствами самого перл, ибо only perl can parse perl.
хм… для меня перл — расширенный баш. Не более) классы и обьекты я на нем не пишу. Поэтому информацию по этой ветке я посмотрю и почитаю. Полезно. Так что можно сказать спасибо за указание моих ошибок.
Постойте-ка, а ка же Ctrl+X Ctrl+O посл имени объекта и точечки? Оно очень даже контекстное.
да, есть такой мод для Emacs называется sepia, он якобы умеет это — потому что запускает в фоне интепретатор перла (но его автодополнятор я так и не изнасиловал, он что-то автодополнял, но что я так и не понял) CPerl мод весьма толково дополняет — пытясь угадать что тебе нужно.

а еще в Sepia есть удобный sepia-repl наподобие лиспового REPL'а в котором можно писать perl код который сразу будет эвалюироваться — удобно, когда нужно что-то попробовать, чтобы не создавать 1.pl 2.pl test.pl whatever.pl

Как редактор да. Возможно настроить и чтобы автодополнял по умному. Но для этого надо искать сторонние пакеты, или писать свои, чтобы получить автодополнение по типу как в Zend Studio. По крайней мере как это только средствами плагинов vim, я не слышал. Те же exuberants tags являются пакетом системы, а не модулем вим. Самплагин как я помню называется ctags, для которого требуется этот пакет.
UFO just landed and posted this here
Можно
используя сишный tags
кстати, вмест ctags посоветую cscope. Там можно найти, например, где данный метод вызывается, плюс всё, что умеет ctags
UFO just landed and posted this here
Ну не знаю. На практике ничего сделать не получилось. Попробовал я настроить этот omni-complete, для этого генерировал огромный tag-file по всему проекту. Нормальных результатов он не выдаёт (выдаёт кучу каких-то посторонних методов). К тому же каждый комплит зависает секунд на 7-8, что абсолютно не приемлемо.
У меня он двухмегабайтный tags просматривает за несколько миллисекунд. Есть подозрение, что какой-то не в меру умный плагин пытается что-то сделать, в результате тратит кучу времени и всё-равно выдаёт всё подряд.
Сорри :). Беру часть своих слов обратно. Всё работает. У меня просто $this не работал, так я руки и опустил. Работает довольно быстро, если написать часть названия метода, а потом вызывать комплит. А так если после -> ничего не писать, то ищет секунд 10.
>Но таким же путем это делается и для любого другого языка.
таки для, простите, любого? А для java можно хотя бы на уровне netbeans'а (про идею, конечно молчу)?
можно настроить. Но для java лучше все-таки eclipse
UFO just landed and posted this here
На eclim не смотрел, а vimplugin просто встраивает окошко Vim в клипсу, при этом в этом встроенном Vim у вас нет доступа к функциям автодополнения клипсы.
Серьёзно? :D У меня он вообще не встал. :) Но eclim умеет многое, в том числе автодополнение. Ещё автодополнение есть в java.vim. Там именно парсилка, а не регулярные выражения.
Нет, расскажите мне наконец, что есть в NERDTree, чего нет в стандартном netrw (:h netrw)?
Стоп, наберите ка :Explore а потом пару раз нажмите i
:) Что ещё?
Ухты, не знал, не знал :) Ну тогда так: даже учитывая то, что дерево в netrw есть, пользоваться им в NERDTree намного удобнее. Просто попробуйте :)
его приятней как :Sex вызывать :)
UFO just landed and posted this here
ахаха!!! :-D

я все файлы, где что-либо приходится анализировать так называю. И даю им порядковые номера. Там всего-лишь логи тестов)
В самом начале — ссылка на vim.org — пробел в ссылке… поправьте :)
спасибо, исправила
UFO just landed and posted this here
Во! А расскажите в чем разница между miniBufExpl и табами в 7ом виме? Табы делают miniBufExpl устаревшим?
UFO just landed and posted this here
UFO just landed and posted this here
Чот я не понял… а разве NERDTree не дублирует всего лишь некоторые из возможностей включенного в вим по умолчанию где-то с шестой версии netrwPlugin?
NERDTree намного мощнее. Ну а назначение и у NERDTree и у netrw одно — ходить по каталогам и открывать из них файлы. Так что в каком-то смысле дублирует конечно. Ну как Vim дублирует notepad.
Я с NERDTree использую ещё и FuzzyFinder. Очень удобно переключаться между файлами — Ctrl+f, вводите сочетание символов из названия желаемого файла и VIM в drop-down списке показывает возможные варианты. Что-то подобное вроде в Textmate есть.
Vim хорош! Жалко что только недавно это осознал
Не видал еще чтоб vim так заколбасило
Хабр завалил вим.орг…
Я знал, что такое может быть, но всё равно как-то не по себе…
Хабр тут ни при чём, vim.org уже давно периодически пролёживает целыми сутками.
Я честно читал маны в попытках найти в Виме хоткей для дублирования текущей строки и способ включения фолдинга. Но безуспешно, возможно, потому что грипп. В результате, я пока пользуюсь jEdit'ом.
> дублирования текущей строки

* yyp
* :help i_CTRL-Y

> способ включения фолдинга.

$ grep fold .vimrc
set foldenable
set foldcolumn=0
set foldmethod=syntax
set foldlevelstart=99
Вобщем, грипп лучше всё-таки вылежать.
perl-support не пробовал, спасибо, посмотрю. Еще могут оказаться полезными след. маппинги:
vmap _c :s/^/#/g<Enter> " закомментировать блок кода (vmode)
vmap _C :s/^#//g<Enter> " раскомментировать

nnoremap <silent> _t :%!perltidy -q<Enter> " пропустить выделенный блок кода через perltidy
vnoremap <silent> _t :!perltidy -q<Enter> " пропустить весь файл  через perltidy
" проверка синтаксиса по :make
autocmd FileType perl set makeprg=perl\ -c\ %\ $*
Лучше
:compiler perl
Простой вопрос, который уже давно меня мучает в vim — принудительная идентация блока.
1. «Shift-v», выделяю блок.
2. ">"
3. Делается одинарный отступ но при этом выделение теряется. Как итог — приходится второй раз выделять, чтобы сделать бОльший отступ на этом блоке.

Гуру вима! Хелп ми :) Как не терять выделение после идентации?
> второй раз выделять, чтобы сделать бОльший отступ на этом блоке.

Во-первых, лучше n->, а во-вторых — = и autoindent вам в помощь.

> Как не терять выделение после идентации?

:help gv
А вы после этого нажмите точку (.), и этот же блок будет сдвинут ещё раз. :)
или забиндить вот это:
vmap < <gv
vmap > >gv
в конфиг ~/.vimrc или ~/.gvimrc
Лучше в ~/.vimrc, это же не GUI-специфичный мэппинг.
И еще один вопрос в дополнению к предыдущему. Как работать с несколькими файлами одновременно без использования окон — те деления экрана. Например:

> vim 1.txt 2.txt

Как затем между этими файлами переключатсья?
:b, bnext, next etc…

Опять же, читаем :help windows.
imho, так не очень удобно, особенно когда открыто много файлов. Я делаю так:
:ls (или :buffers_
Отображается список буферов, типа:
1 index.php
2 style.css
3 script.js

Нажимаем нужный порядковый номер и CTRL-^ — вуаля.
Подробнее :help buffers.
> imho, так не очень удобно
> [...]
> :help buffers

Дык я ж и говорю — :help windows, а там уже кому как хочется. Да и плагинов хватает.
Например так:
www.vim.org/scripts/script.php?script_id=159 — minibufexpl

И это — в ~/.vimrc

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

" F7 — следующий буфер
map <F7> :bn<cr>
imap <F7> <esc>:bn<cr>
Я делаю vim -p 1.txt 2.txt и хожу по ним Ctrl-стрелками:
map ^[[C :tabn^M
map ^[[D :tabp^M
imap ^[[C ^[:tabn^M
imap ^[[D ^[:tabp^M
У меня вот так:

nmap <S-F2> :ls:bimap <S-F2> :ls:b
Пардон, кусок сожрался

nmap <S-F2> :ls<CR>:b<Space>
imap <S-F2> <Esc>:ls<CR>:b<Space>
www.vim.org/scripts/script.php?script_id=42 Посмотрите еще в сторону этого плагина. Я ползуюсь им, удобно. И замаппил такие комбинации клавишь:

«F5 — просмотр списка буферов

nmap :BufExplorervmap :BufExplorerimap :BufExplorer» F6 — предыдущий буфер
nmap :bpvmap :bpi
imap :bpi

" F7 — следующий буфер
nmap :bnvmap :bni
imap :bni
UFO just landed and posted this here
> он не понимает код
А VS может раскрасить мне исходник на D? А vim может. ;)

> он не в курсе того, что и как нужно собрать и от чего оно зависит.
А VS в курсе? 0_o И как оно определяет зависимости? Собирать можно всех научить с помощью внешних утилит.

По исходнику на D кстати вполне реально автоматически определить зависимости, но подозреваю, что в VS это не реализовано. И правильно. Есть программка, которая делает именно это и незачем её реализовывать по пять раз в каждой IDE и редакторе.
UFO just landed and posted this here
Но и не все программируют на C/C++.

Научить vim использовать внешнюю утилиту для отстройки приложения и показывания в отдельном окошке ошибок компиляции с переходом между ними по хоткею можно за 10 минут.
UFO just landed and posted this here
gtags помогает.
Нужно признать, для интегрированных сред разработок (всё в одном) написано больше средств (в основном MS, Sun и IBM :]), но мне удобнее когда одна программа выполняет одну функцию. vim — для чтения и редактирования кода, gtags — для анализа кода, и т.д.
Само собой с аккуратной интеграцией друг в друга, но сохранением возможности работать самостоятельно :)
UFO just landed and posted this here
ИМХО не стОит, если Вам больше по душе интегрированные среды. С vim+gtags придётся использовать ещё как минимум svn/hg/что-там-у-вас и make. Кого-то это сильно раздражает. И просто на смену привычек уйдёт немало времени.
Эмуляторы vim покрывают в лучшем случае 40% используемой мной функциональности. Была в NetBeans одно время фича Editor Servers, позволявшая использовать vim вместо умолчального блокнота. Где-то в районе 3-го NetBeans её перестали поддерживать, но в vim поддержка до сих пор сохранилась, чем успешно воспользовался vimplugin.org/ для eclipse.
UFO just landed and posted this here
Vim безусловно хорош, один из самых лучших текстовых редакторов. Вообще за такой софт разработчикам надо памятник при жизни ставить :) Но понять весь его потенциал не так просто, надо копать глубже. Многие просто не понимают азов работы в нем и бросают дальнейшее использование и зря. На оф. сайте vim написано — «Vim is a highly configurable text editor built to enable efficient text editing». Как говорится, ППКС ;)
UFO just landed and posted this here
эм…
наверное надо просто повесить за моником vim cheat sheet и уяснить режимы редактора. а так же понять, что делают последовательности типа c3w.

А плагины — дело наживное, главное знать, что они есть :)
Раз пошла такая пьянка…
Давно хотел поделиться опытом. В ближайшее время напишу статейку про MacVim, плюс можно будет скачать все настройки.

Какой приятный у вас шрифт в терминале. Как называется?
неплохо если бы кто нить взялся написать небольшую статью типа «Эффективная работа в Vim» :)
хотелось бы по русски почитать для начинающих с примерами:
как проверять орфографию, работать с буфером, с несколькими отрытими файлами, с html, перекодировка, поиск и замена…
Для начала можно пройти vimtutor. Он и на русском есть. Потом можно почитать этот самый блог с начала. Там есть и про работу с несколькими файлами, и про html, и про кодировки. Проверка орфографии — :help spell
Спасибо симпотичной девушке за замечательную статью :D +1 в карму
Sign up to leave a comment.

Articles

Change theme settings