Plugin vim move не работает

установка плагинов в vim

У меня были большие трудности с установкой плагинов Vim на Mac. Я знаю, что для установки плагина его должен видеть runtimepath. Согласно Vim Docs, это

Прежде всего, что означает $ VIM: vimfiles ?? Это, конечно, не $ VIM / vimfiles, так как (

/ .vim / vimfiles) не работает. Так что мои варианты

1) Поместите мой плагин в / usr / share / vim / vim73 (мой $ VIMRUNTIME, который я знаю, что ПЛОХО)

2) найти способ заставить vim просматривать мой домашний каталог при включении плагинов. Я вставил свой плагин в:

Все безрезультатно. Может ли кто-нибудь помочь мне здесь? Спасибо!

/ .vim / plugin, а не в

Вам не нужно ничего делать, чтобы Vim нашел ваши плагины и настройки. За исключением фактического размещения их в нужном месте.

В производных UNIX $VIM относится к каталогу, в который были установлены файлы поддержки Vim. В Mac OS X, производной от UNIX, расположение Vim по умолчанию — /usr/bin и в нем установлены файлы поддержки /usr/share .

Не помещайте свои плагины / цвета / сценарии в /usr/share/vim/vim73 . Должны быть только файлы по умолчанию, так как они, вероятно, будут изменены в следующий раз, когда вы или Apple обновите вашу установку.

В Mac OS X (или любой производной от UNIX) вы должны поместить свои плагины / colorschemes / scripts в

/.vim каталог, а ваши пользовательские настройки — в

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

Некоторые плагины состоят только из одного файла, pluginname.vim который вы должны вставить

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

Многие плагины, однако, состоит из множества файлов во многих каталогах нравятся autoload , after , doc . Вы должны поместить файлы в их соответствующих каталогах под вашим

/.vim , создавая их по мере необходимости. Взяв CtrlP в качестве примера:

Как только вы освоитесь с основами управления плагинами в Vim, вам следует попробовать Pathogen или Vundle или какое-то другое решение .

/ .vim / plugin. когда я запускаю: имена сценариев в vim, они никогда не появляются. В чем может быть проблема? моя установка vim не должна «смотреть» в этом каталоге .

/.vim что это? Какой плагин (ы) вы пытаетесь установить?

/ .vim, / usr / share / vim / vimfiles, / usr / share / vim / vim73, / usr / share / vim / vimfiles / after,

/ .vim / after, так что это, безусловно, кажется правильным. я пытаюсь установить minibufexplorer

/.vim/plugin/ директорию для размещения файлов плагинов vim (как указано в справочной команде Vim).

В vim смотрите помощь: :h plugin

Поскольку этот вопрос не относится конкретно к настройке путей для обеспечения работы плагинов, альтернативой обдумыванию всего, что касается путей, является просто получение нужных плагинов в vim из вашего .vimrc (при условии, что он работает) путем добавления строки :source PATH/TO/FILE.vim . Vim обычно проверяет наличие .vimrc прямо в домашнем каталоге

/ . Если он не существует, попробуйте создать его там, и из него либо найти нужные плагин (ы), как описано, либо сначала сделать что-то еще, что вы заметите при запуске vim, например :echo your vimrc says hello .

Источник

Vim по полной: Менеджер плагинов без фатальных недостатков

  1. Введение (vim_lib)
  2. Менеджер плагинов без фатальных недостатков (vim_lib, vim_plugmanager)
  3. Уровень проекта и файловая система (vim_prj, nerdtree)
  4. Snippets и шаблоны файлов (UltiSnips, vim_template)
  5. Компиляция и выполнение чего угодно (vim-quickrun)
  6. Работа с Git (vim_git)
  7. Деплой (vim_deploy)
  8. Тестирование с помощью xUnit (vim_unittest)
  9. Библиотека, на которой все держится (vim_lib)
  10. Другие полезные плагины

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

Как работает менеджер плагинов для Vim? Все тривиально. Во время старта редактора считывается .vimrc в котором объявляются все используемые в данный момент плагины. Эти имена конкатенируются с адресом каталога, который должен хранить плагины и полученные строки добавляются в runtimepath — переменная Vim, которая определяет, откуда редактору брать стартовые скрипты, плагины и все остальное.

Основной проблемой большинства популярных менеджеров плагинов для Vim является то, что они заполняют переменную runtimepath как попало. К чему это ведет? Плагины загружаются беспорядочно, нет возможности переопределить настройки плагина для конкретного проекта, плагины переопределяют ваши собственные настройки Vim и т.д. Все еще больше усугубляется невозможностью контролировать порядок загрузки плагинов, когда нужно сначала загрузить плагин A, а только затем зависимый от него благин B. Одним словом — боль.

Что нам нужно в идеале

/.vim/) — конфигурации и плагины конкретного пользователя

  • Проектные (./.vim/) — конфигурации и плагины, доступные только в данном проекте. Именно этого уровня нет в Vim, точнее он есть, но реализован довольно слабо
  • Это позволит, например, настроить шаблоны для Java классов, а затем переопределить их для конкретного проекта. Можно так же установить некоторый плагин только для определенного проекта, и этот плагин не будет подгружаться Vim в других проектах, что сэкономит память и увеличит производительность редактора (например вы решили начать работать с Lua и не хотите ставить плагины в

    /.vim/). Только представьте, один редактор на все случаи жизни и никаких лагов.

    Стандарты плагинов

    Библиотека vim_lib определяет как структуру плагинов Vim (но не ограничивает вас только этой структурой, может использоваться любой плагин), так и порядок их подключения и загрузки, для этого реализованы классы sys/Plugin и sys/Autoload соответственно.

    Если реализовать плагин в строгом соответствии с требованиями класса sys/Plugin, то мы получим следующую структуру:

    Файл plugin/myPlugin.vim содержит логику инициализации и подключения плагина.

    Файл doc/myPlugin.rux содержит документацию к плагину.

    Зачем все это нужно? Во-первых стандартизация. Писать, изменять и разбираться в плагинах становится легче. Во-вторых их проще отключить.

    Подробнее можно почитать здесь.

    Автозагрузка

    /.vimrc)
    Подключение пользовательских плагинов (

    /.vim/plugin/)
    Подключение файло-зависимых плагинов пользователя (

    /.vim/ftplugin/)

  • Подключение основных файлов конфигурации проекта (./.vimrc)
  • Подключение проектных плагинов (./.vim/plugin/)
  • Подключение файло-зависимых плагинов проекта (./.vim/ftplugin)
  • Выполняется это с помощью уже знакомой нам переменной runtimepath, но учитывается порядок загрузки плагинов, их локализация (системные, пользовательские или проектные), а так же поддерживается механизм переопределения конфигураций как редактора, так и любых плагинов на каждом из уровней (проектный уровень самый приоритетный).

    Вообще класс sys/Authoload позволяет реализовать любую иерархию вложенности и приоритет конфигураций, а не только трехступенчатую, но я не увидел необходимости добавлять новые уровни.

    Для использования автозагрузки, предлагаемой классом sys/Authoload, достаточно добавить в ваш файл .vimrc следующие строки:

    Сделать это можно не только на пользовательском уровне (

    /.vimrc), но и на системном ($VIMRUNTIME/.vimrc) или проектном (./.vimrc), при этом логика автозагрузки будет распространятся только от данного уровня и «ниже». На всех низлежайших уровнях достаточно просто подключать новые плагины, доступные только этому уровню:

    Для отключения плагина, достаточно просто закоментировать строку Plugin ‘имя’.

    Сконфигурировать плагин можно прямо во время его подключения:

    На более низких уровнях можно переопределить эти конфигурации:

    Все очень гибко и удобно.

    Менеджер плагинов

    Казалось бы, что мешает заставить другие менеджеры плагинов устанавливать плагины в нужные нам каталоги (системный, пользовательский или проектный)? Проблема здесь в том, что другие менеджеры не просто устанавливают сторонние плагины, но и определяют порядок из инициализации, а нам это не нужно (уже реализовано классом sys/Authoload библиотеки). Та самая проблема несовместимости Vim плагинов, о которой я говорил в предыдущей статье. Пришлось писать свое решение.

    vim_plugmanager имеет довольно простой интерфейс и позволяет устанавливать плагины из GitHub в системный каталог, каталог пользователя или проектный каталог, в зависимости от того, где вы сейчас находитесь.

    Как видно на рисунке, vim_plugmanager реализован в виде окна, в котором он отображает список установленных на данный момент плагинов (именно установленных, а не подключенных) с группировкой по уровням. Для добавления нового плагина достаточно нажать клавишу a, а для удаления навести курсор на плагин и нажать dd (очень привычно, не так ли?).

    После установки нового плагина его необходимо подключить. Для этого, как уже было сказано выше, достаточно добавить в текущий .vimrc (текущего уровня) запись Plugin ‘имяПлагина’. Нужно это потому, что установка плагина представляет собой копирование его в каталог с плагинами, а подключение добавляет его в vimruntime, после чего он может быть загружен редактором.

    Подробнее можно почитать здесь.

    Пока все

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

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

    Источник

    Vim Move Word пропускает точку

    Я использую MacVim с spf13, и когда я использую w для перемещения слова вперед, точки рассматриваются как часть слова.

    Есть ли для этого настройки?

    Продолжение: я заметил, что vim ведет себя так только с некоторыми файлами. Для fileA.coffee перемещение вперед пропускает точки, а для fileB.coffee — нет. Это как-то установлено на уровне файлов?

    Однако, над файлами, которые пропускает точку ( fileA ), выполняем:set iskeyword-=. как предполагает Гептит работает.

    3 ответа 3

    Это опция ‘iskeyword’ . Вы можете изменить это поведение, просто выполнив:

    Если это не сработает, это означает, что символ точки включен в параметр как часть диапазона символов, а не по отдельности, и вам придется проверить значение (с вопросительным знаком в качестве части команды):

    Затем определите, как правильно его изменить, чтобы исключить период. Взгляните на это (с одинарными кавычками в составе команды):

    Я должен предупредить вас, что включение символа точки в ‘iskeyword’ не является значением по умолчанию для Vim, поэтому у вас может быть плагин filetype или подсветка синтаксиса для конкретного языка, которая добавляет его. Причина этого в том, что « iskeyword » используется для многих вещей, включая определенные атомы регулярных выражений, которые можно использовать для подсветки синтаксиса. Так что удаление может «сломать» что-то еще.

    У меня было много проблем с плагином neocomplete, который был добавлен в spf13. Во многих случаях завершение не удавалось, поиск не удался, и даже ESC не работает в словах, чтобы вернуться в нормальный режим. Удаление neocomplete и всех настроек, связанных с neocomplete, решило большинство из этих проблем, хотя ESC все еще требуется дважды в определенных ситуациях, чтобы выйти из режима вставки.

    Правильный путь — это изменение определения ключевого слова.

    Я использую на vimrc:

    set iskeyword=65-90,95,97-122,48-57 «the same: a-z,_,A-Z,0-9

    Если вы используете некоторые плагины, такие как ctrlp, вам потребуется дополнительная работа, чтобы сохранить конфигурацию iskeyword активной, потому что существует множество плагинов, которые изменяют iskeyword при каждом их выполнении.

    Вы можете сопоставить лидера +k, чтобы запустить эту команду

    Источник

    Опыт перехода с Sublime на Vim

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

    Я достаточно долгое время использовал sublime (около 4 лет) в качестве основной среды разработки, но в последнее время кое-что изменилось: я освоил слепой 9-ти пальцевый метод печати. В тот момент я начал понимать людей, которым неудобно тянуться к мышке или стрелочкам. Убирать пальцы с «домашних» позиций стало неестественно и непродуктивно. Тогда я включил vintage. Проблема, вроде бы, стала неактуальна, но чего-то не хватало. Не помню, что заставило меня пересесть за vim, но мне всегда нравилось, как в нем выделяются фигурные скобки (MatchParen) и как выглядит курсор :). Vim я пробовал и до этого, когда правил конфиги на сервере, правда, вся «магия» ограничивалась переходом в режим вставки и успешным сохранением/выходом из редактора.

    Первое, что необходимо понять — vim из коробки годится разве что для правки конфигов, для комфортной работы с кодом необходимо установить несколько плагинов. Мне хватило 33. Я не ставил перед собой цель полностью копировать поведение sublime, скорее сделать работу в vim’е такой же простой и интуитивно понятной. Данное руководство описывает все установленные плагины, а также настройки, которые, по моему мнению, делают работу с плагинами и самим vim’ом более удобной. Нужные плагины вы можете найти на официальном сайте, хотя мне больше нравится vimawesome. В качестве окружения выступает Ubuntu 16.04 и консольный vim 7.4.

    Все плагины находятся на github, где вы можете посмотреть краткое руководство по установке или использованию того или иного плагина, за подробным описанием стоит идти в help. Если из описания плагина не ясно, как его использовать, то, наверняка, нужная комбинация биндится в разделе горячих клавиш. Все настройки прописываем в

    /.vim/vimrc, если файл не существует — создаем. Пожалуй, начнем.

    Нет ничего приятного в том, чтобы ставить плагины вручную. Vundle выступает в роли пакетного менеджера, среди которых есть также pathogen, vim-plug и другие. Не могу сказать, что удобнее, так как пользовался только Vundle. Выбирайте на свое усмотрение.

    Установленные плагины
    Команды
    Установка
    Зависимости

    Плагин предназначен для перемещения текущей строки или выделенных строк вверх или вниз.

    Самый популярный плагин, предназначен для работы с файловой системой. Добавляет удобные горячие клавиши для создания, перемещения и удаления файлов и директорий.

    Плагин добавляет поддержку сниппетов в vim.

    Набор сниппетов для большинства языков программирования.

    За 3 года я так сильно привык к нечеткому поиску, что с трудом представляю разработку без этой возможности. Насколько я помню, это был первый плагин, который я установил. Ctrlp производит поиск по тегам, файлам, буферам и последним активным файлам.

    Команды
    Полезные комбинации
    Пользовательские настройки
    Зависимости

    Мне нравится миникарта в sublime, взглянув на неё можно сразу понять структуру файла. Естественно, я хотел такую же и в vim, и, надо же, плагин так и называется — vim-minimap. К сожалению, плагин мне совершенно не понравился. Нужна была альтернатива, и она нашлась — tagbar. Плагин показывает список тегов в текущем файле, группируя их и сортируя в нужном порядке.

    Пользовательские настройки
    Зависимости

    Один из лучших плагинов, на мой взгляд. Позволяет моментально перемещаться по коду, введя всего несколько символов.

    Пользовательские настройки
    Примечание

    Плагин делает работу с сессиями более удобной, предоставляя обертку над стандартной командой :mksession.

    Команды
    Пользовательские настройки
    Зависимости

    Об emmet’e было сказано слишком много, чтобы писать о нем тут.

    Плагин ставит отступы между любыми скобками или кавычками.

    Плагин для проверки синтаксиса. В readme советуют ставить следующие настройки, не спорим.

    От плагина для комментирования кода я хотел добиться следующего поведения: для комментирования участка кода используем , для комментирования строки, раскомментирования строки/фрагмента кода служит . Насколько я помню, из всех установленных мною плагинов (около 4-х), ни один в точности не справился с этой задачей. Чтобы раскомментировать фрагмент кода приходится использовать стандартную комбинацию — \ cu, где \ — «,». Это не стандартная клавиша, по умолчанию используется «\». В остальном такое же поведение, как и в sublime.

    Плагин отображает удобную строку статуса, которую легко кастомизировать под свои нужды. Также можно позволить плагину управлять внешним видом вкладок. Для корректной работы нужны пропатченные шрифты, которые вы можете взять отсюда.

    YCM предоставляет быстрое автодополнение кода с нечетким поиском. Самый «тяжелый» плагин из всех и самый неприятный в установке. Весит 275.9 mb и заметно замедляет запуск редактора. Для сравнения, все остальные плагины вместе взятые занимают 15.1 mb. Для работы плагина нужен vim, скомпилированный с поддержкой python. Для проверки выполните команду vim —version | grep «+python» в вашем терминале. Я не люблю компилировать из исходников и, к счастью, в моём репозитории есть пакет «vim-nox» с поддержкой скриптовых языков.

    Пользовательские настройки
    Установка

    Название говорит само за себя — плагин позволяет работать с несколькими курсорами одновременно.

    Долгое время меня пугала мысль, как я буду реализовывать замену строки по всему проекту, да еще с предпросмотром и… подтверждением. И зря — для vim’a нашелся (причем почти сразу) замечательный плагин, который предоставляет необходимый функционал. Достаточно набрать команду :CtrlSF pattern [filemask] и откроется окно со всеми вхождениями. Редактируем как обычный файл, сохраняем (:w). После чего, плагин запросит подтверждение и укажет сколько файлов подвергнутся изменениям. Будьте осторожны, если нажать на \ , то данные всё равно закоммитятся. Впрочем, всегда можно отменить изменения (u) и сохранить буфер заново. Хорошо сочетается с множественными курсорами, особенно с командой :MultipleCursorsFind. CtrlSF — это абстракция над ack/ag, так что один из этих плагинов придется установить. Про установку ag читать ниже.

    Команды
    Полезные комбинации
    Пользовательские настройки
    Зависимости

    Плагин для более удобной работы с оператором «use». Подключает необходимый класс, используя тег-файл.

    Плагин позволяет добавлять, заменять или удалять окружающие текст кавычки, скобочки или xml-теги. ys, cs, ds — служат для вставки, замены и удаления обрамляющих символов соответственно.

    Плагин выравнивает текст по определенному шаблону, например «=» или «|». Я не любитель «бьюти» кода, но недавно, когда я делал шпаргалку по временам в английском языке, плагин оказался весьма полезным.

    Для работы таких плагинов, как CtrlP, TagBar и php-namespace вам понадобится ctags — мощная утилита для анализа исходного кода программ. Ctags создает тег-файл, в котором содержатся названия классов, функций, переменных, . а также их позиции. Ctags 5.9 поддерживает 43 языка из коробки, но может быть расширен при помощи регулярных выражений (смотреть tagbar-css).

    Тег-файл предоставляет много информации, но создавать его вручную — дело не из приятных. Easytags избавит вас от рутины, достаточно один раз прописать :UpdateTags -R в новом проекте, а все последующие изменения плагин проиндексирует сам.

    Пользовательские настройки
    Зависимости

    Довольно сложно описать каждый плагин подробно, да и незачем, наверное. Нет никакого смысла перечислять все команды, я лишь описал те, которые сам использовал, но и без того статья получилась весьма объемной. Теперь давайте рассмотрим возможности самого редактора.

    /.inputrc с содержанием set convert-meta on. Забавно, но в xterm всё работало. Gnome-terminal преподнес мне уйму незабываемых ощущений, пока я не наткнулся на этот ответ на SO. Должен признаться, я почти сразу нашел этот ответ, но мне показалось, что программировать комбинацию клавиш, хм, слишком. Немного изменив пример, получаем:
    Это какой-то мазохизм, и я верю, что есть что-то более адекватное (напишите в комментариях, если это так, пожалуйста), просто в тот момент я был рад любому решению.

    Заключение: vim дает свободу, несравнимую ни с чем. Возможно, emacs может составить конкуренцию, но с ним пока не работал. Переход от sublime’a к vim’у напоминает мне переучивание с 4-х пальцевой (насколько я помню) печати на 9-ти пальцевую. Не поймите меня неправильно, sublime замечательный редактор, речь о том, что поначалу вы теряете привычную скорость; проходит время, продуктивность возвращается до прежнего уровня и начиная с этого момента вы наращиваете скорость. Все основные функции, которыми я пользовался в sublime, перекочевали в vim в том или ином виде. Самое время отрабатывать комбинации и расширять стандартные возможности редактора с помощью viml. Есть еще одна особенность, которая напоминает мне смену основной ОС с Windows на Ubuntu. В Windows я пользовался терминалом, наверное, раз 10 за всё время. Я не могу сказать, что мне чего-то не хватало, вполне всё устраивало. Но когда переходишь на linux, то волей-неволей начинаешь использовать консольные команды. Не осознанно (и это важно) вы получаете инструмент (bash) для решения определенных задач. В vim’e приходится постоянно что-то гуглить в поисках решения тех или иных проблем. Очень часто я вижу решения, которые отличаются от привычной настройки sublime или похожих редакторов в стиле key:value. Вы в буквальном смысле программируете свой редактор. Почти сразу вы видите, как инициализировать переменную, чуть позже — как применить ту или иную настройку для определенного типа файлов, еще позже — как слушать события или создавать циклы. По крупицам информации вы получаете представление про viml и, возможно, скоро напишите свой первый плагин. Конечно, всё это можно узнать просто открыв документацию к языку, но, должен сказать, желания освоить python или api sublime у меня так и не появилось. Лично я уверен, что vim приберег для меня еще немало приятных сюрпризов, а мой .vimrc, похоже, будет меняться всё время, пока я работаю с этим редактором.

    Если вы заядлый vim’ер, то вам могут понравиться следующие расширения для chrome:

    PS: вместо родного символа комментария viml (двойная кавычка), я решил использовать «//», поскольку viml на хабре нет, и я не знаю, есть ли язык со схожим комментированием кода.
    PS2: некоторые комбинации экранированы символом «\», дабы парсер не считал их за html-теги. Тег «pre» — блочный, решил, что лучше уж так.

    UPD: добавлена поддержка gui для solas.

    Источник

    Читайте также:  Как включить плей маркет если он не работает
    Оцените статью