Как сделать подсветку синтаксиса в vim

Обновлено: 07.07.2024

Go поставляется с go.vim файл, который содержит параметры синтаксиса для VIM и выше страница предлагает следующие инструкции

поместите $GOROOT / misc/vim/syntax / go.ВИМ Ин ~/.vim / синтаксис/ и поместите следующее в~/.vim/ftdetect / go.ВИМ:

поэтому я думаю, что я делаю правильные вещи, когда я создаю каталоги:
~/.ВИМ
~/.ВИМ/синтаксис
~/.vim / ftdetect

и следуйте приведенным выше инструкциям, добавив

перейти.vim to~/.ВИМ/синтаксис/ и создаем файл, идем.ВИМ, в ~/.vim/ftdetect / который содержит

однако подсветка синтаксиса, похоже, не происходит. Есть ли что-то, что мне нужно сделать, чтобы заставить VIM посмотреть эти новые файлы настроек?

вы можете просто добавить эти строки в свой ~/.vimrc :

EDIT предполагается filetype plugin indent off перед этими строками (т. е. начало .vimrc file) и может вызвать проблемы, если это не так. См. ответ @peterSO ниже для более безопасной версии.

обновление:

Перейти 1.4 Примечания К Выпуску

сборник

каталог стандартного репозитория верхнего уровня misc, используемый для хранения Go поддержка редакторов и интегрированных сред разработки, Плагины, инициализации сценарии и так далее. Поддержание их становилось трудоемким и необходима внешняя помощь, потому что многие из перечисленных редакторов не использовались членами основной команды. Это также потребовало от нас принятия решений о том, какой плагин лучше всего подходит для данного редактора, даже для редакторов мы делаем не использовать. Сообщество Go в целом гораздо лучше подходит для управления этой информацией. Таким образом, в Go 1.4 эта поддержка была удалена хранилище. Вместо этого есть кураторский, информативный список что доступно на вики-страницы.

стандартный дистрибутив Go включает в себя файлы Go для Vim в go/misc/vim/ . Этот каталог содержит что содержит инструкции по установке.

на Debian, я полагаю, это то же самое на ubuntu, вы просто :

этой страница говорит, что:

это сработало для меня, только я не нашел /misc/vim/go.сначала каталог vim. Поэтому я скопировал файлы с другого компьютера, который установил go on /usr/local/go/.

Я уверен, что все, кто привык при настройке серверов пользоваться текстовым редактором vim с подсветкой синтаксиса, в конце концов задаются вопросом – насколько злодейским должен быть человек, который по умолчанию выставил темно-синий цвет для отображения закоментированного текста? Словом, ситуация классического маразма: фон – черный, комментарии – синие, контраста – нет.

Оказывается, в vim существует весьма тривиальная команда:

Палитра подсветки сразу же меняется на более яркую, а закоментированный текст становится различимым. Эту строку можно добавить в ~/.vimrc для того, чтобы опция всегда была активна при запуске редактора.

Кроме того, можно изменить непосредственно цвет комментариев:

Эта строка сделает их не такими яркими, но намного более читаемыми на черном фоне. Аналогично, ее также можно добавить в ~/.vimrc.

Обложка: Как отсюда выйти: шпаргалка по Vim

Вы собираетесь создать файл crontab и внезапно оказываетесь в этом странном редакторе по умолчанию. В том, в котором всё никак не разберётесь.

ESC? Ничего не произошло. CTRL + C? Нет. ESC ESC ESC? Неа. Вы в тупике.

Ну вот, опять. Склонив голову от стыда, вы запускаете очередной терминал, чтобы исполнить команду killall vim и продолжить заниматься своими делами.

С вами бывало такое? Конечно, бывало. Что ж, потратив несколько минут на эту статью, вы познакомитесь с основами редактора Vim (и научитесь быстро выходить из него).

Vim по умолчанию установлен во многих операционных системах (включая большинство дистрибутивов Linux и macOS), поэтому хотя бы поверхностные знания о нём лишними не будут. Откройте терминал и введите vim .

В умелых руках Vim может стать мощнее многих IDE. И, разумеется, он не ест сотни мегабайт памяти лишь для отображения пустого файла (да, Eclipse, это о тебе).

Основы

Некоторые из нижеописанных команд начинаются с двоеточия: нажав его, появится подсказка, в которой будет указана полная команда. Команды без двоеточий — это скорее горячие клавиши, которые можно использовать в режиме по умолчанию (в нём запускается Vim). Команды, написанные ЗАГЛАВНЫМИ БУКВАМИ — это отдельные клавиши: например, ESC — это клавиша Esc на вашей клавиатуре.

Все команды чувствительны к регистру и должны выполняться вне режима insert.

Выход из Vim

Выход без сохранения изменений:

Как запомнить: quit dammit! (закройся, чёрт возьми!)

Выход с сохранением изменений:

Как запомнить: write to disk and quit

Навигация

Для перемещения по открытому файлу используйте стрелки.

Перемещение на строку 285:

Изменение текста

Вставка текста там, где стоит курсор:

Вставка текста в конце текущей строки:

Выход из режима редактирования (возврат в стандартный режим):

Выделение текста

Переход в визуальный режим:

Для выделения текста используйте стрелки.

Выход из визуального режима:

Копирование, удаление, вставка

Копирование выделенного текста в буфер:

Удаление выделенного текста:

Копирование текущей строки в буфер:

Как запомнить: yank yank

Копирование трёх строк, включая текущую, в буфер:

Удаление текущей строки и помещение её в буфер:

Как запомнить: delete delete

Удаление 5 строк, включая текущую:

Вставка из буфера перед текущей строкой:

Вставка из буфера после текущей строки:

Отмена и восстановление последнего изменения

Отмена последнего изменения:

Восстановление последнего отменённого изменения:

Отмена двух последних изменений:

Многоуровневое дерево отката изменений Vim очень мощное, подробнее о нём можно почитать в документации.

Работа с файлом

Открытие файла index.html вместо текущего:

Сохранение текущего файла:

Как запомнить: write to disk

Сохранение файла с изменённым именем, например, changes.txt:

Поиск и замена

Поиск и замена всех вхождений строки в файле:

Поиск и замена с запросом подтверждения замены:

Подсветка синтаксиса и отступы

Включение подсветки синтаксиса:

Включение автоматических отступов:

Увеличение отступов нескольких строк при выделении их в визуальном режиме:

Вкладки

Открытие server.py в новой вкладке:

Переход на вкладку справа:

Переход на предыдущую вкладку слева:

Как запомнить: tab previous

Для закрытия вкладки переключитесь на неё и используйте команду :q или :wq .

Разделённый экран

Открытие templates/base.html в режиме вертикального разделения экрана:

Как запомнить: vertical split

Открытие shared.js в режиме горизонтального разделения экрана:

Как запомнить: the ’default’ horizontal split

Для закрытия экрана переключитесь на него и используйте команду :q или :wq .

Настройка Vim: файл .vimrc

Многие команды, используемые для изменения вида и поведения Vim, можно сделать включёнными по умолчанию, поместив их в .vimrc — файл конфигурации Vim, который расположен в домашнем каталоге.

Например, добавление этих строк в ~/.vimrc сделает подсветку синтаксиса и автоматическую корректировку отступов включёнными по умолчанию:

Идеи для кастомизации Vim можно почерпнуть в этом GitHub-репозитории.

Полезные ресурсы

Вот ещё несколько полезных материалов для изучения Vim:

А какая команда Vim — ваша любимая? Может, вы знаете удобные приёмчики? Делитесь ими в комментариях!

Я только недавно настроил свою среду Vim из Textmate, после того, как стал зависимым от его модального ввода.

Однако подсветка синтаксиса в Vim выглядит не так красиво. Я кодирую на C++, и поскольку вызов функции и имена классов не могут быть выделены, код труднее читать. Я немного поиграл с цветовой схемой, но не смог найти ни одного поля, соответствующего "имени класса" или "имени функции".

На картинке ниже, обратите внимание, как DroughtLayer:: а также *.size() не выделен справа в MacVim.

Есть идеи как решить это? Это действительно раздражает меня, так как я очень чувствительный парень.

Интересно, что подсветки синтаксиса в VIM не поддерживают применение синтаксиса к идентификаторам или именам функций - по крайней мере, подсветки синтаксиса для C и C++. Итак, даже если вы делаете:

это не дает им цвет. Я просто, кажется, не намного больше, чем ключевые слова и константы для этих языков.

У меня была такая же проблема, когда я начал использовать vim. Решение простое, вам просто нужно отредактировать файл синтаксиса c, используемый vim, вот как это сделать:

Когда вы начинаете редактировать файл C или C++, vim читает файл синтаксиса c по умолчанию, расположенный в

(Где $VIMRUNTIME - это место, где вы установили vim. Вы можете узнать его значение по умолчанию, открыв vim и используя команду ":echo $VIMRUNTIME").

Вы можете просто перезаписать этот файл или создать свой собственный файл синтаксиса C (который будет загружен vim вместо файла по умолчанию) в этом месте:

(Я никогда не использовал Mac, поэтому не знаю, какой из них будет работать для вас. Вы можете узнать больше в справке vim, ":help vimfiles")

Теперь самое интересное. Скопируйте файл по умолчанию "$VIMRUNTIME/syntax/c.vim" в каталог vimfiles ("$HOME/.vim/syntax/c.vim" для UNIX) и отредактируйте его, добавив следующие строки:

Это оно! Теперь имена функций и классов будут выделены цветом, определенным в выделении "Function" (": hi Function"). Если вы хотите настроить цвета, вы можете изменить последние две строки выше на что-то вроде этого:

или вы можете оставить файл синтаксиса C в одиночестве и определить цвета в вашем файле vimrc (": help vimrc"):

(Обратите внимание на отсутствие ключевого слова def, перейдите к ": help highlight-default" для получения подробной информации). Доступные параметры для команды ": hi" см. В разделе ": help: highlight".


Да, такое стоит. Подсвечиваются только управляющие конструкции, всякие дефайны и инклюды, и названия типов.

Функции же не подсвечиваются


Подсвечиваются только управляющие конструкции, всякие дефайны и инклюды, и названия типов.

Ну вот, а говорите:


Скопировал binsearch.c в binsearch.cpp
Справа видно, что функции подсвечиваются. Слева = нет


А причем здесь собственно C? Это надо интеграцию какого-нибудь ctags, функции-то не встроены в язык, а библиотек может быть множество.


Через yaourt vim-cpp ты просто установил новый файл подсветки для С++, в котором дополнительно перечислены стандартные библиотечные функции. Так что вариантов для получения схожего эффекта для С-файлов несколько, можно ручками добавить нужные определения в уже имеющийся у вима файл для С, можно по аналогии создать дополнительный файл подсветки с нужными тебе определениями и подгружать его при работе с С-файлами, а можно просто для С-файлов принудительно устаавливать С++ подсветку.

Читайте также: