Nano Hash - криптовалюты, майнинг, программирование

Добавить комментарий в конце строки в синтаксис vim

Не каждая команда в Vim позволяет добавлять комментарии в конце строки. Иногда " допустим в качестве аргумента, поэтому это будет неоднозначно. Однако если вы вставите вертикальную черту, команда завершится, и вы можете вставить комментарий. Таким образом, вы можете добиться надежных комментариев в конце строки в vim следующим образом:

noremap ' ` |" Use single quote as alternate range key

Аккуратно, верно? Но файл syntax/vim.vim не распознает это как комментарий в конце строки. Как сказать Vim распознавать этот синтаксис?

Я нашел это в syntax/vim.vim:

syn match   vimLineComment  +^[ \t:]*".*$+  contains=@vimCommentGroup,vimCommentString,vimCommentTitle

Я пытался добавить что-то подобное в свой ~/.vimrc, но безрезультатно. VimScript — это сложно. :/

syntax match vimLineComment '|".*$+'

Есть идеи?

06.06.2014

Ответы:


1

вы не можете использовать встроенные комментарии для maps

:h map-comments

ты увидишь:

                            *map-comments*
It is not possible to put a comment after these commands, because the '"'
character is considered to be part of the {lhs} or {rhs}.

Надеюсь, это ответит на ваш вопрос.

взломать

Хорошо, у вас может быть веская причина для этого.

Только определить syn match vimLineComment недостаточно, надо перезаписать синтаксис vimMapRhs. поэтому эти две строки сделают |"foo bar выделенным как комментарий:

syn match vimMapRhs '.*\ze|\s*".*'
syn match vimLineComment '|\s*".*$'

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

06.06.2014
  • Вы абсолютно можете. Видишь трубу? Комментарий в этом случае является отдельной командой. Попытайся. Я добавил вводный текст, чтобы сделать контекст более понятным. 07.06.2014
  • @sidewaysmilk Я понимаю, что ты имеешь в виду. лично это совсем не аккуратно. зачем вам этот хак? кстати, вы должны исключить \|"foo случай, так как это может быть буквальная труба в rhs 07.06.2014
  • Почему на самом деле не имеет значения. Мой вопрос заключается в том, как добавить токен комментария в конце строки в синтаксис VimScript Vim. Эта информация будет полезна всем, кто пытается добавить/исправить токен комментария в любом синтаксисе. Если вам просто любопытно, это потому, что у меня есть длинный список команд в моем файле ~/.vimrc, который я хотел бы прокомментировать таким образом. Это просто предпочтение. 07.06.2014
  • Строки syn match... у меня работали только после того, как я поместил их в ~/nvim/after/syntax/vim.vim с помощью Neovim. 12.04.2020
  • совершенно не по теме, но ваша тема выглядит действительно здорово. Как вы его установили? Я предполагаю, что это взято из цветов терминала и еще много чего, так какую терминальную программу вы используете? я бы тоже хотела поставить 01.08.2020
  • @Daniel Я создал репозиторий для своей темы. Подробная информация о моей теме: github.com/sk1418/last256 Кстати, я использую терминал urxvt. Но vim в этом ответе - GVIM 01.08.2020

  • 2

    Задний план

    • vim 7.3 все платформы
    • язык vimscript (используется в файлах vim)

    Проблема

    Язык vimscript поддерживает комментарии, но комментарии в конце строки не всегда работают предсказуемо, потому что комментарии в конце строки могут быть ошибочно интерпретированы vim как часть команды.

    Добавление комментариев в конце строки проблематично в vimscript, потому что это работает не со всеми командами.

    Решения

    • 1) use the pipe character :help :bar to create a separate Ex command
      • this is the solution enumerated by @sidewaysmilk
    • 2) просто добавьте комментарий под соответствующей командой vimscript на следующей строке
    • 3) используйте команду выполнения (см. :help :execute)

    Подводные камни

    • Решение 1) несколько нетрадиционное использование трубы (она же :bar)
    • Не все команды поддерживают символ вертикальной черты (см., например, :help :execute)
    • Решение 2) может быть нежелательным для удобочитаемости вимскрипта, и оно напрямую не решает проблему в ОП.
    • поиск этой функции в Интернете сложен, потому что он обнаруживает ссылки, связанные с комментариями в контекстах программирования общего назначения, не связанных с vimscript.

    Смотрите также

    Ссылки на помощь Vim (введите их непосредственно в режим командной строки vim):

    • :help vim-script-intro | /comments for some commands
    • :help :bar
    • :help Command-line-mode

    Веб ссылки:

    15.06.2014
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..