Vi & Vim

Вопросы и ответы для людей, использующих семейства текстовых редакторов vi и Vim

1
Цифровая клавиатура не работает с vi и Putty?
Когда я редактирую файл vimчерез SSH, я попытаюсь использовать цифровую клавиатуру на своей клавиатуре для ввода длинных чисел (например, IP-адресов). Vimкажется, это не очень нравится. Я использую PuTTY для Windows для SSH на компьютер под управлением Debian. Нажатие 123вводит меня это независимо от того, нахожусь ли я в режиме вставки …
10 terminal  putty 

3
Есть ли движение, похожее на «, которое никогда не включает ведущие пробелы?
Я использую a"движение довольно часто в VIM; например, используя ca"при рефакторинге кусок кода, чтобы заменить жестко закодированный аргумент именем переменной. Проблема с этим подходом состоит в том, что a" включает ведущие пробелы, если нет пробелов : Любые конечные пробелы включены, если их нет, тогда включается начальный пробел. Таким образом, когда …

1
Запретить обновление экрана до завершения функции
У меня есть функция, которая выполняет много операций по перемещению и выводу текста в текущий буфер vim, и когда я ее запускаю, то, что происходит со скоростью ослепления, немного сбивает с толку. Как я могу заморозить экран, пока функция не будет выполнена? Вот эта функция: function! MakeChoices() :let save_view = …
10 vimscript 

3
Как мне посчитать слова в части файла, не покидая vim?
У меня есть файл, полный текста (скажем, Markdown или LaTeX). Я хотел бы посчитать количество слов в части этого файла. Я знаю, что могу сделать :! wc -w %для запуска wc -w на текущий буфер. И я знаю, что могу вставить интересующий раздел в именованный регистр. Я предполагаю, что есть …

4
Вывести текущее имя файла для редакции в командной строке
Как я могу вызвать путь к текущему файлу в командной строке, чтобы ввести аналогичное имя файла? Я не хочу аббревиатуру, которая будет заменена текущим именем файла, я хочу отредактировать имя файла вместе с путем к каталогу. Например, я хочу :editфайл с похожим именем или в аналогичном каталоге, например vim src/submodule/frontend/frobnicate2.c …

1
NERDTree Как открыть файл и автоматически закрыть буфер обозревателя
При использовании плагина NERDTree поведение по умолчанию заключается в открытии нового файла и сохранении открытого буфера NERDTree. Я хочу сохранить это поведение по умолчанию, но также переопределить его, когда я хочу, чтобы буфер NERDTree был закрыт после того, как я открыл файл. Я знаю, что могу использовать let NERDTreeQuitOnOpen=1для автоматического …

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

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

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

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

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

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

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

2
Как я могу заставить 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 может быть хорошим способом сэкономить при печати. Тем не менее, я не могу заставить его соответствовать файлам, что я считаю нормальным способом. Сначала я …


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.