Ярлык для открытия файла в Vim - PullRequest
119 голосов
/ 21 февраля 2009

Я хочу открыть файл в Vim, как в Eclipse, используя Ctrl + Shift + R или через Ctrl + N опция автозаполнения. Вызовите сочетание клавиш, введите имя файла / шаблон и выберите из всех подходящих имен файлов.

Я знаю, открывая его обычно, как:

:tabe <filepath>
:new <filepath>
:edit <filepath>

Проблема в том, что в этих случаях мне нужно указать полный путь к файлу.

Ответы [ 19 ]

4 голосов
/ 21 февраля 2009

Если вы редактируете файлы в общем каталоге, вы можете :cd в этот каталог, а затем использовать :e только для имени файла.

Например, вместо:

:e /big/long/path/that/takes/a/while/to/type/or/tab/complete/thingy.rb
:sp /big/long/path/that/takes/a/while/to/type/or/tab/complete/other_thingy.c
:vs /big/long/path/that/takes/a/while/to/type/or/tab/complete/one_more_thingy.java

Вы можете сделать:

:cd /big/long/path/that/takes/a/while/to/type/or/tab/complete/
:e thingy.rb
:sp other_thingy.c
:vs one_more_thingy.java

Или, если у вас уже есть файл в нужном каталоге, вы можете использовать сокращение % для текущего имени файла и обрезать его до текущего каталога с модификатором :h (:help :_%:):

:e /big/long/path/that/takes/a/while/to/type/or/tab/complete/thingy.rb
:cd %:h
:sp other_thingy.c
:vs one_more_thingy.java

И, как уже говорили другие, вы можете завершить имена файлов в конце строки (подробнее см. :help cmdline-completion).

4 голосов
/ 21 февраля 2009

Если у вас есть теги (и вы должны это сделать), вы можете открыть файл из командной строки просто по имени класса или метода или функции c, с помощью "vim -t DBPlaylist" и в пределах vim с помощью " : tag ShowList ".

4 голосов
/ 07 января 2010

Это не точно , что вы ищете, но это хорошо во многих случаях (хотя и не во всех).

Если вы открыли VIM и в буфере есть имя файла, вы можете навести курсор на это имя и набрать g f . Откроется файл, имя которого находится под курсором в том же буфере. Это так же, как

:e <kbd>CTRL</kbd>+<kbd>r</kbd> <kbd>CTRL</kbd>+<kbd>w</kbd>

3 голосов
/ 22 февраля 2009

Я знаю три плагина, которые позволяют открывать файлы, поддерживают автозаполнение и не требуют ввода полного пути к файлу (файлам), который нужно открыть (если файлы находятся в одном из каталогов из &path опция vim):

В последнее время я видел другой плагин с похожей функцией, но я не помню его название.

Вскоре: find, вероятно, поддерживает автозаполнение - патчи на эту тему распространяются в списке рассылки vim_dev в эти дни.

1 голос
/ 23 февраля 2009

FuzzyFinder был упомянут, однако мне нравится поведение, аналогичное textmate, для плагина FuzzyFinderTextmate , расширяющего поведение для включения всех подкаталогов.

Убедитесь, что вы используете версию 2.16 файла fuzzyfinder.vim - более высокие версии ломают плагин.

1 голос
/ 21 февраля 2009
  • вы можете использовать (установить wildmenu)
  • вы можете использовать табуляцию для автозаполнения имен файлов
  • вы также можете использовать сопоставление, например: e p*.dat или что-то в этом роде (как в старых 'dos)
  • Вы также можете: просмотреть подтверждение e (для графического окна)

  • но вы также должны указать, какую версию vim вы используете, и как эта штука в emacs работает. Может быть, мы могли бы найти вам точную альтернативу vim.

0 голосов
/ 29 марта 2019

В GVIM, файл можно просмотреть с помощью диалога открытия / чтения / записи;

:browse {command}

{команда} - открыть / прочитать / написать

open - открывает файл read - Добавляет файл write - Диалог SaveAs

0 голосов
/ 06 мая 2013

С помощью Exuberant ctags вы можете создавать файлы тегов с информацией о файле:

ctags --extra=+f -R *

Затем откройте файл из VIM с помощью

:tag filename

Вы также можете использовать <tab> для автозаполнения имени файла.

0 голосов
/ 07 января 2010

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

Другой обходной путь, который я сейчас пробую, - это открыть все файлы, которые мне могут понадобиться в начале сеанса редактирования. Например, открыть все файлы в ключевых каталогах ...

:args app/**
:args config/**
:args test/**
etc...

(Это означает, что я мог бы открыть множество файлов, однако пока все работает нормально).

После этого я могу использовать FuzzyFinder в буферном режиме, и он будет действовать как command-o ярлык TextMate ...

:FuzzyFinderBuffer
...