Vi & Vim

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

3
Vim -p: поймал смертельный сигнал SEGV?
Я получаю эту проблему, когда я запускаю Vim с -pопцией. Предположим, я начал с vim -p first.txt second.txt Затем после редактирования first.txtя перехожу к second.txtиспользованию gt. Я нажимаю клавиши ggи Gснова. Это приводит к ошибке Vim: Caught deadly signal SEGV С этого момента Vim не отвечает ни на один сигнал, …
12 crash 

2
Как вы сложите функции автоматически?
Есть ли способ сделать функции Vim Fold основанными на синтаксисе объявления функции? Например, с помощью vim включите такую ​​функцию: def foobar(foo,bar): if foo > bar: print "foo" elif foo < bar: print "bar" elif foo == bar: print "foobar" В это: +----- 7 lines: def foobar(foo,bar): ------------------------------------------------------------- Есть ли какой-то …
12 folding 

2
Как запустить функцию или макрос в папке с файлами?
Допустим, у меня есть функция с именем StripWhitespace. Я могу запустить его на одном файле, открыв файл и запустив его :StripWhitespace. Как я могу автоматически запустить эту функцию для папки с файлами и сохранить результаты по мере продвижения?

2
Как вы находите, где переменная была назначена в последний раз?
Я пытаюсь установить, g:netrw_list_hideи это не похоже на работу. Независимо от того, что я установил в моем, .vimrcэто всегда имеет значение ,^\.\.\=/\=$. Только если я vimrcснова получу исходный файл, он будет иметь правильное значение. Как мне отладить это? Я думаю, есть какой-то плагин, который устанавливает эту переменную? Возможно, после того, …

1
Сделайте cnext и cprevious loop обратно в начало
Если я запускаюсь, :cnextкогда уже в конце списка быстрых исправлений, я получаю сообщение об ошибке E553: No more items и ничего не происходит Вместо этого, когда я вхожу :cnextв конец списка, я бы хотел, чтобы vim возвращался к первой записи быстрого исправления. Можно ли настроить Vim для этого поведения?
12 quickfix 

1
Получить текущее окно / буфер / вкладку в Vimscript
В python, используя модуль vim, невероятно просто получить текущее окно / буфер / вкладку: current_win = vim.current.window current_buff = vim.current.buffer current_tabpage = vim.current.tabpage У меня вопрос, как вы делаете это в чистом VimL / Vimscript и какой тип объекта возвращается? Я действительно не могу найти это где-нибудь в windows.txt( :h …

1
Как записать мой ввод с клавиатуры, чтобы сделать статистику по нему?
Я хотел бы узнать, какие наиболее распространенные шаблоны я использую во время кодирования. Так что я ищу способ записать все мои вводы с клавиатуры, пока я в VIM, желательно с временными метками. Затем я мог бы проанализировать самые последние использованные шаблоны / движения, сколько времени занимает действие, и выяснить, что …
12 vimrc 

2
Игнорировать URL-адреса и адреса электронной почты в файле заклинания
Есть ли способ, чтобы vim не отмечал URL-адреса HTTP и адреса электронной почты как орфографические ошибки? Или, в более общем смысле, способ перечислить регулярные выражения правильных написаний?

1
Использование vim и кофеина на одной машине
Фон Я работаю в исследовательской лаборатории и использую три разные ОС ежедневно. На компьютерах с Windows и Mac я использую Caffeine, чтобы запретить этим компьютерам активировать заставку, когда я работаю на другом компьютере (у Linux такой проблемы нет). Это очень раздражает, чтобы войти снова, когда я переключаюсь назад. проблема Когда …

3
Как заменить более одного символа без входа в режим вставки
У меня есть файл со строкой, которая выглядит так: foofoo.xy.barbar Я хочу , чтобы изменить xyTo gh. Я пытался сделать 2r-> gh, но очевидно , что не работает, как он заменил xyс , ggа затем переместил курсор на одно место влево. Есть ли способ сделать это, не входя в режим …

3
Vim на WSL: синхронизировать системный буфер обмена? (установить буфер обмена ^ = без имени)?
При использовании WSL / Bash для Windows я хочу иметь возможность использовать один y yy 3yи pтот же способ, которым они всегда работают в vim, но подключаться к системному буферу обмена, который используется всеми приложениями, а не к внутреннему буферу обмена vim ... У меня уже есть возможность управлять буфером …

1
Глобальная подстановка Vim не подставляет все совпадения в строку
иногда мои глобальные субстуции не заменяют все совпадения в строке. Это подтверждается тем фактом, что я могу видеть это, когда я делаю замены с подтверждением, совпадение найдено в строке с несколькими возможными совпадениями, но затем оно переходит на другую строку. Я использую параметры gили gcдля всего файла с %. В …
12 substitute 

2
Как я могу записать вложенный макрос?
Я хочу записать макрос внутри макроса, вот так: qa [ first macro ... ] qb [ second macro ... ] q [ some more stuff, involving @b ... ] q Однако второй qинтерпретируется как запрос на остановку первого макроса, а остальные интерпретируются как команды. Есть ли способ начать запись второго …
11 macro 

1
если еще endif oneliner
У меня есть этот oneliner в моем, vimrcно он не работает: if has("patch-7.4.710") | set listchars+=space:· else | set listchars+=trail:· | endif VIM говорит: E518: Unknown option: else Можешь мне помочь ?
11 vimscript 

3
В чем разница между атомами '\ zs' и '\ @ <=' в регулярном выражении Vim?
Вот что я получаю из документации: \zs«запускает выделенную часть» после сопоставления с предыдущим регулярным выражением и \@&lt;=«запускает выделенную часть» после сопоставления с предыдущим атомом . Но я не совсем понимаю тонкости этого, так кто-нибудь может объяснить, как они отличаются немного глубже? Это то, что заставило меня любопытно: если я бегу …

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