Vi & Vim

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

2
Как настроить заклинание, чтобы игнорировать некоторые среды в LaTeX
Есть ли способ сказать vim не проверять орфографию части латексного документа? Например, блок кода с использованием mintedсреды или URL-адреса в \url{}? (Я не уверен, что это актуально для проверки орфографии, но я использую плагин vimtex для редактирования латексных файлов.)

5
Как искать шаблон в определенных синтаксических регионах?
Я использую vim для редактирования латексных документов. Часто я хочу изменить имя переменной на другое. Тем не менее, немного раздражает, когда приходится искать нерелевантные совпадения, когда я ищу имя переменной. Я хотел бы искать только в «математических зонах», как это определено в файле синтаксиса tex. Есть ли простой способ ограничить …
10 search 

1
удалить строки, которые соответствуют шаблону от данной строки до конца файла
Если у меня есть файл с большим количеством комментариев, и я хочу удалить все комментарии, скажем, от строки 3 до конца файла, каков наилучший способ сделать это? Я застрял, поскольку то, что я впервые попробовал, похоже, не совсем то, что я хочу: :3,$/^#/d Вместо того, чтобы искать шаблон и удалять …
10 ex-mode 

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


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

3
Вставьте инкрементный номер в каждую строку в выделении или совпадении
У меня есть проблема, я могу думать о двух общих подходах к решению, но я не знаю специфику для любого подхода. ... 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 ... Для каждой строки, …
10 macro  replace 

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

3
Как написать фолд-expr?
Я прочитал страницу справки о fold-expr ( :h fold-expr), но он не объяснил, какой синтаксис используется в выражении. Там было четыре примера: :set foldexpr=getline(v:lnum)[0]==\"\\t\" :set foldexpr=MyFoldLevel(v:lnum) :set foldexpr=getline(v:lnum)=~'^\\s*$'&&getline(v:lnum+1)=~'\\S'?'<1':1 :set foldexpr=getline(v:lnum-1)=~'^\\s*$'&&getline(v:lnum)=~'\\S'?'>1':1 Я понял, что v:lnumэто строка, которая требует уровня отступа, и что выражение два - это вызов функции. как насчет выражений …
10 folding 

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



2
Сохранить последнее действие (.) В макросе
Случай использования Я в нормальном режиме. Я явно не думал о записи макроса, но я делаю одну команду изменения. Теперь я могу повторить это действие, используя точку. Теперь я понимаю, что полезно сохранять макрос в последующем макросе, а не вводить всю команду каждый раз. Я могу либо следить за всеми …

1
Почему: bd # удаляет текущий буфер, если альтернативного буфера не существует?
Вот как я воспроизвожу поведение, которое наблюдаю. Сначала я ввожу эту команду: echo aaaaa > a vim a В Vim я ввожу эти команды: :ls :e # :echo bufname('#') Вот вывод трех вышеупомянутых команд: :ls 1 %a "a" line 1 :e # E194: No alternate file name to substitute for …

3
Как я узнаю, что я в оболочке из команды vi: sh?
В vi я могу получить оболочку терминала с помощью :shкоманды. А позже я могу вернуться к vi с помощью exitоболочки. Но, если я долгое время пользовался терминалом оболочки, и я забыл, exitзакроет ли что-нибудь или вернет мне ви. Есть ли способ проверить, вернусь ли я к vi? jobsили fgне работает.

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