Как сделать подсветку синтаксиса в vim
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.
Вы собираетесь создать файл 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 ты просто установил новый файл подсветки для С++, в котором дополнительно перечислены стандартные библиотечные функции. Так что вариантов для получения схожего эффекта для С-файлов несколько, можно ручками добавить нужные определения в уже имеющийся у вима файл для С, можно по аналогии создать дополнительный файл подсветки с нужными тебе определениями и подгружать его при работе с С-файлами, а можно просто для С-файлов принудительно устаавливать С++ подсветку.
Читайте также: