Vi & Vim

10
Как я могу остановить Vim от записи файла без выдачи ошибки?

Я пытаюсь улучшить код из этого ответа, чтобы запросить подтверждение перед созданием отсутствующего каталога, вот что я пишу: function! CreateDirectoryAskConfirmation(path) if !isdirectory(a:path) echohl Question echo "Create directory " . a:path . "?" echohl None let response = nr2char(getchar())...

10
Как записать весь буфер в стандартный вывод из командной строки?

Я хотел бы записать весь буфер в стандартный вывод ( /dev/stdout) вместо файла, и следующая команда работает, как и ожидалось, при редактировании файла: :w >> /dev/stdout Подсказка: нажмите Control+, Lчтобы обновить экран. Но это не работает, как ожидалось, когда я пытаюсь сделать то же самое...

10
Как выполнить оператор python для каждой строки?

У меня есть следующий пример кода, который изменяет текущую строку с помощью инструкции Python: :py import vim; vim.current.line="["+vim.current.line+"]" Как я могу выполнить эту инструкцию для каждой строки в текущем файле? Связанный: Как вы можете использовать Python в Vim? в стеке...

10
Самый эффективный способ заменить весь буфер?

В настоящее время у меня есть два аналогичных метода для замены всего буфера другим текстом (скажем, в буфере обмена). Способ № 1: удалить все строки: :%d. вставить текст: "+P(или аналогичный:) :put+. Способ № 2: визуально выделить все строки: ggVG. вставить текст: "+P. Однако я не мог найти способ...

10
Применить команду нормального режима для регулярных выражений

Я использую следующее регулярное выражение для сопоставления строки документации под определением функции Clojure: \vdefn.*\n\s*\zs"([^"]|\n)*" Есть ли способ запустить команду нормального режима gq(формат строки) для всех совпадений этого шаблона в данном...

10
Как написать фолд-expr?

Я прочитал страницу справки о fold-expr ( :h fold-expr), но он не объяснил, какой синтаксис используется в выражении. Там было четыре примера: :set foldexpr=getline(v:lnum)[0]==\"\\t\" :set foldexpr=MyFoldLevel(v:lnum) :set...

10
Как работать с режимом командной строки по пути vi?

Есть ли способ взаимодействия с режимом командной строки, всегда оставаясь в исходном положении? В частности, следующие два действия являются обременительными, требующими перемещения пальцев к клавишам со стрелками, а иногда и хуже, к мыши. Перемещение: есть ли способ двигаться вперед и назад в...

10
Как я могу заставить ctrlp лучше сопоставлять имена файлов?

Мой проект имеет эти файлы: $ find . -type f -and -name 'peop*' ./app/assets/stylesheets/admin/sections/people.css.sass ./app/controllers/admin/people_controller.rb Когда я устал набирать текст :e app/assets/stylesheets/admin/sections/people.css.sass, я подумал, что ctrlp может быть хорошим...

10
Можно ли создавать собственные команды «set» в моем файле rc и вызывать их из модельной строки?

Недавно я задал вопрос, в котором я узнал, что невозможно передать ничего, кроме параметров, :setв vim modelines. Я понимаю проблемы безопасности, но мне интересно, нет ли другого способа обойти это. Недавний вопрос о SO о создании крупных партий параметров в соответствии с кодирующим стандартом...

10
Как открыть несколько файлов, соответствующих шаблону выражения?

Я хочу отредактировать несколько файлов, соответствующих выражению glob. Например, чтобы отредактировать все файлы конфигурации git в дочерних каталогах, я могу сделать это в оболочке: vim */.git/config В :командной строке Vim я ожидал :find */.git/configсделать что-то подобное (то есть открыть все...

10
Как добиться выделения разной длины текстов по разным строкам?

Предположим, у меня есть следующие тексты: aaa-dd-e: "aaa", bb-x: "bb", c-9: "c" Я хочу сделать выбор, как показано ниже: aaa-dd-e:"ааа", bb-x:"бб", c-9:"с" Я попытался использовать cv для создания визуального блока, но после того, как я создал выделение в первом столбце и нажал «f:» (я хотел...

10
Как Ctrl-A и Ctrl-X, но изменить только первую цифру

Есть ли способ увеличить / уменьшить первую цифру после / под курсором, а не целую цифру. Я знаю, что это не то, как работает Vim, но есть ли плагин, который делает это? Я не смог его найти. Это очень полезно при редактировании CSS и в других случаях. Данный: ▐margin: 10px Когда я нажимаю, CTRL-Aя...

10
Вставьте инкрементный номер в каждую строку в выделении или совпадении

У меня есть проблема, я могу думать о двух общих подходах к решению, но я не знаю специфику для любого подхода. ... Level 1: cũng also Level 1: và and Level 1: như like; such as Level 2: các plural marker Level 2: của belonging to ... Для каждой строки, начинающейся с «Level n», я хочу вставить...

10
Выполнить содержимое буфера как vimscript

У меня есть nofileбуфер, который содержит vimscript, и я хочу его выполнить. Однако, :so % это не будет работать, потому что для этого требуется сохраненный файл, а не буфер. Есть ли команда vim, чтобы сделать это по умолчанию? Если нет, то возможно ли создать функцию, которая делает то же...

10
Перейти к последнему непробельному символу предыдущей / следующей строки?

Мне нравятся клавиши -и в <C-M>нормальном режиме для перехода к первому непробельному символу предыдущей / следующей строки. Существуют ли соответствующие ключи для перехода к последнему непробельному символу в предыдущей / следующей...

10
Почему пользовательские выделения в моем vimrc очищаются или сбрасываются по умолчанию?

Я хотел бы выделить (частично) мою строку состояния %1*, например: set statusline=%1*%f%0* highlight User1 ctermbg=0 ctermfg=10 cterm=bold Однако это всегда отображается как «пустой» (цвета терминала по умолчанию): Если я печатаю :highlight User1, это показывает User1 xxx cleared, и если я печатаю...

10
Контекстно-зависимое отображение или сокращение режима вставки

Я планирую реализовать некоторые отображения утилит для моего плагина LaTeX, чтобы упростить типизацию математики. Например, я хочу создать сокращения, похожие на `a : \alpha `b : \beta -> : \to => : \Rightarrow И аналогичные. Я хочу, чтобы (некоторые из) сопоставления были доступны только...