Vi & Vim

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

2
Как мне открыть файл из другой ветки git?
Я хотел бы открыть файл из другой ветки в текущем хранилище git. Я видел этот вопрос SO , но предложения по его объединению с Vim громоздки (передача в Vim, открытие stdin, установка типа файла и т. Д. Вручную). Есть ли более простой способ сохранить подсветку синтаксиса, настройки типов файлов и …
35 git 

5
Как сохранить файл в каталоге, который еще не существует?
Предположим, я запускаю Vim для редактирования нового файла в каталоге, который еще не создан: vim nonExisitingDirectory/newFile.txt Vim с радостью покажет мне пустой буфер, и я могу начать писать свой новый файл. Но когда я хочу записать файл на диск, я получаю эту ошибку: E212: Can't Open file for writing. Я …
35 save  autocmd 

10
Как закомментировать набор строк, выбранных в визуальном режиме?
Как закомментировать несколько выделенных строк в визуальном режиме? Как мне сделать это конкретным языком? Например, если выделены первые 4 строки: def foo(a,b): for each in (a,b): print each return a+b print "2" Операция команды / макроса должна привести к этому (в Python): #def foo(a,b): # for each in (a,b): # …

5
Как сделать функцию vimscript с необязательными аргументами?
Я хочу сделать функцию, которая имеет необязательные аргументы. В Python я бы сделал что-то вроде этого: def functionName(arg1,arg2=false,arg3=false): if arg2: #Do stuff with arguments else: #Do stuff without arguments Я пытался сделать function FunctionName(arg1,arg2=false,arg3=false), но это просто дает мне ошибку, говоря неверный аргумент. Как бы я сделал это в Vimscript?
35 vimscript 

2
Что делает: set background = dark do?
Я не вставил color xxxсвой .vimrc. Итак, я вижу это, когда впервые открываю свою .vimrc. :colorдает мне defaultздесь. Тогда я печатаю :color darcula. И это меняется к этому. :colorдает мне darculaздесь (естественно). Тогда я печатаю :set background=dark. И это меняется к этому. :colorдает мне defaultздесь (удивительно). Итак, мой вопрос, что …

4
Как я могу изменить отступ по умолчанию в зависимости от типа файла?
Я хотел бы иметь разные отступы в зависимости от типа файла, над которым я работаю. Например, работая с .cфайлом, я хотел бы, чтобы отступы составляли 4 пробела. В .htmlфайлах, которые я хотел бы (должен) работать с вкладками. Как мне этого добиться?

3
Как я могу получить более новую версию Vim на Ubuntu?
Пакеты Ubuntu могут быть довольно старыми, но для некоторых настольных программ (например, Vim) я бы предпочел иметь последнюю версию, так как более новые версии часто исправляют различные ошибки. Как я могу получить достаточно свежую версию Vim на Ubuntu?

2
Закрыть все разделенные файлы, кроме того, который в данный момент сфокусирован?
Иногда, когда я работаю над файлом, я открываю несколько файлов только для того, чтобы получить представление о текущем потоке кода. Однако это иногда приводит к тому, что несколько файлов открываются за один раз с помощью разделения. Есть ли команда выйти из всех, кроме выбранного окна?

6
Могу ли я удалить всю строку, кроме разрыва строки?
Довольно распространенная для меня операция в vim, так как я навязчиво навязчив и не хочу, чтобы мои файлы были свободными от пробелов, состоит в удалении содержимого всей строки, но не самой строки (то есть не прерывания строки). Есть ли встроенный способ vim сделать это? Возможно d<movement command>операция? Пока что лучшее, …


6
Применение настроек только к дереву каталогов
В моей работе мы используем стандарт ts2; мое личное предпочтение - 4, и это то, что я использую для своих хобби-проектов, и этот другой проект, который мы унаследовали, имеет соглашение ts=8. Есть также некоторые другие настройки, которые я хочу установить для проекта (например, сворачивание). Использование этих настроек для типа файла …
33 vimrc  filesystem 

2
Можно ли посмотреть историю нажатий клавиш в обычном режиме?
Я знаю, что Vim хранит историю для бывших команд, поисков, мест перехода, изменений и, возможно, других. С помощью showcmdset Vim также показывает, какие клавиши вы уже ввели для команды нормального режима, пока эта команда не будет выполнена. Иногда, когда в нормальном режиме, я опечатки и действия происходят. Я могу отменить …

3
Могу ли я использовать немоноширинный шрифт в Vim или gVim?
Есть ли способ использовать немонокальный шрифт в vimили gvim? Я попытался изменить шрифт для gVim с помощью: :set guifont=Dejavu\ Serif\ 12 Но это дает мне довольно неприятные результаты: Я получаю те же результаты, если использую меню (Правка -> Выбрать шрифт) :help guifont говорит: Note that the fonts must be mono-spaced …
32 terminal  gvim  font 

3
Как получить интеллектуальное автозаполнение C ++
Некоторые редакторы (например, Visual Studio на Windows) делают автозавершение C ++, которое понимает C ++. Например, учитывая: #include <vector> int main(void) { std::vector<int> v; v.i В визуальной студии автозаполнение знает единственный метод, std::vector<int>который начинается с i insert. Возможно ли получить такое автозаполнение в vim?

3
Как вы «разбиваете» строку в Vim?
Предположим, вы запустили следующий фрагмент vimscript: let @z = system("date") Это поместит строковую версию текущей даты в регистр z, но строка будет заканчиваться символом новой строки, который мне не нужен. Есть ли встроенный способ (похожий на Perl chomp), чтобы избавиться от завершающих строк строки?
32 vimscript 

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