Я очень стараюсь изучить vim после использования TextMate в течение последних нескольких лет.
Я начал фиксировать часть внутрифайловой навигации в памяти, но мне трудно перемещаться между несколькими файлами.
В моем рабочем процессе я довольно часто переключаюсь между несколькими файлами (достаточно файлов, так что окна с разделенными панелями становятся слишком маленькими).
В настоящее время я использую NERDTree, но нахожу подробное описание каталогов громоздким, а также постоянно использую CTRL+ W h/ CTRL+ W lдля перехода туда и обратно.
Я думаю, что лучше бы справился с вкладками, между которыми я могу легко переключаться, но, возможно, мне нужно использовать другой рабочий процесс.
Я также хотел бы ярлык «Перейти к файлу ...», например CMD+ Tв TextMate. Я обнаружил, fuzzy_file_finder
но для этого требуется, чтобы vim был построен с привязками Ruby, что не относится к собственным установкам, над которыми я работал.
Хотя я мог бы перестроить основную причину, по которой я хочу переключиться на vim, я могу иметь одну среду редактора, которая, как я знаю, будет легко работать на любой платформе.
Есть множество вариантов, любые идеи очень ценятся!
источник
Ответы:
Я не считаю, что углубление в подкаталоги с помощью простого старого кода
:e
было бы таким громоздким, учитывая приличную конфигурацию для завершения табуляции.Посмотрите на
'wildmenu'
возможность, чтобы Vim показывал список завершений (имен файлов) в строке режима над командной строкой. Вы можете изменить эту'wildmode'
опцию, чтобы дополнительно настроить тип завершения табуляции, который будет выполнять Vim.Лично пользуюсь
:set wildmode=full
.Мой рабочий процесс такой:
:cd
в каталог верхнего уровня моего проекта.Чтобы открыть файл
foo/bar/baz
:Самый простой сценарий: тип
:e f<tab>b<tab>b<tab><enter>
.Если есть более чем один файл , начиная с
b
в одном из этих каталогов , которые вы , возможно , придется сделать<left>
или<right>
или другой<tab>
на клавиатуре для перехода между ними (или введите несколько букв в неоднозначности).В худшем случае есть файлы и каталоги с одинаковым именем, и вам нужно перейти к каталогу. В этом случае введите имя каталога с помощью табуляции, а затем введите его,
*<tab>
чтобы развернуть.:e
новый файл в том же окне.:b <tab>
для циклического просмотра буферов, которые уже открыты в фоновом режиме. Если вы введете,:b foo<tab>
он будет соответствовать только открытым в данный момент файлам, которые совпадаютfoo
.Я также использую эти сопоставления, чтобы упростить открытие новых окон и переключение между ними, потому что я так часто делаю это.
У меня уходит несколько секунд, чтобы открыть Vim, настроить несколько окон и открыть в них несколько файлов. Лично я никогда не находил, чтобы какие-либо сторонние скрипты просмотра файлов были очень полезными.
источник
Простой способ просмотреть файловую систему - это команда:
Я не выдумываю :)
источник
:Vex
если вы хотите разделить экран по вертикали, а не по горизонтали:Vex
более практичным, но:Sex
просто сделаю свой день.:Se
тоже работает (то же самое дляVe, Te
вариантов). Не нужно делать это странным :):Sex
,:Vex
,:Tex
И:Ex
все полезные команды для экс (ploring) файлы на вашей системе , если вы хотите использовать что - то другое от:e
(где
S/V/T
сокращение от Split / Vertical / Tab)источник
Если вы еще не нашли их, вы можете проверить:
Также имейте в виду, что вы можете переназначить сочетания клавиш в своем .vimrc, чтобы сделать их менее громоздкими. Я часто использую разделенные окна; Я обнаружил, что следующее значительно упрощает работу с ними:
источник
Вы знаете о вкладках Vim? Не уверен, что вы имели в виду вкладки Vim или тосковали по вкладкам TextMate. Неясно, какую версию Vim вы используете, но у нее были вкладки, по крайней мере, начиная с 7.0 (которая, кажется, установлена везде, куда я смотрю в последнее время), и они потрясающие.
:tabe
открывает новую (сокращенно от "tab edit", например,:tabe
для пустого или:tabe path/to/file
для открытия файла на новой вкладке) вы можете перемещаться между соседними вкладками с помощьюgt
/gT
, а также есть множество других навигационных команд, связанных с вкладками, например вы могли ожидать от Vim (:help tabs
)Мой рабочий процесс для больших проектов, как правило, включает в себя множество вкладок, на каждой от 1 до 3 окон, в зависимости от того, какой контекст мне нужен. Это работает даже лучше, если у меня окно терминала двойной ширины, так как я могу разделить его по вертикали
:vs
, поэтому одна вкладка может легко показать мне 4 файла одновременно с большим количеством места для каждого.Последний совет: я иногда использую команду «переключить буфер» (
:sb <partial_buf_name>
), которая в некотором роде похожа на нечеткий поиск TM, в том смысле, что она работает очень хорошо, но только для уже открытых буферов. По-прежнему отлично подходит, когда у меня одновременно открыто несколько или более файлов. (NB, мне нужно было:set switchbuf=usetab
в моем vimrc, чтобы это работало на вкладках, но как только это установлено, это отлично.)источник
vim-titlecase
Винты с GT / отображений Gt, но есть работа вокруг .Я считаю LustyExplorer лучшей на данный момент.
Вы можете открыть файл, набрав только часть его имени.
Вы можете открыть файл из каталога текущего файла, или текущего файла
pwd
, или из списка буферов.Если вы открываете файл из списка буферов, вам не нужно перемещаться по дереву каталогов, хотя, к сожалению, для двух других режимов вам все равно придется перемещаться по дереву. Хорошо, что вам не нужно начинать с первого символа.
Если у вас есть:
и вы хотите открыть,
dir_b/file.html
вы обычно можете найти его, набравb<Tab>h
источник
Удивительно видеть, что эта
:find
команда не упоминается ни в одном из ответов. Я обычно работаю с проектами rails, где мне нужно углубиться в иерархию каталогов. Итак, для файлаapplication.css
, расположенного воapp/assets/stylesheets/
всем, что мне нужно набрать, это,:find applica
а затем нажать вкладку для автозаполнения и ввести, чтобы открыть.источник
Попробуйте плагин ctrlp как альтернативу плагину Command-T . Это лучше, чем это, тем, что это «родной» сценарий Vim и не требует компиляции Vim с Ruby (или другой поддержкой), поскольку он работает очень быстро и ненавязчиво.
источник
Если нужный файл уже загружен в буфер (что вполне вероятно, если вы регулярно переключаетесь между несколькими файлами), вы можете быстро переключиться на буфер с помощью
:b[uffer]
команды.:b
может принимать либо номер буфера в качестве параметра, либо (что более полезно) строку, которая соответствует части пути / имени файла. Если есть несколько совпадений, вы можете использовать вкладку для их просмотра.Если вы хотите разделить окно и открыть буфер в новом окне, используйте
:sb name
Если вы хотите открыть буфер в новой вкладке, используйте
:tab b name
Вы также можете использовать эту
:ls
команду, чтобы увидеть список загруженных в данный момент буферов.источник
Я использую эту функцию для поиска файлов в подкаталогах, но не писал. Это из вики vim :
Что мне нравится, так это поддержка подстановочных знаков (*). Он также хорошо себя ведет для нескольких матчей.
источник
В дополнение к
wildmenu
ответам я использую плагин BufExplorer и следующие сопоставления для быстрого перехода к буферам:Или вы можете просто заменить проводник буфера
:ls
командой, которая в основном отображает то же самое.Последний отображает,
Alt-=
чтобы показать проводник буфера.Я не так часто использую Windows, так как обычно у меня только одно или два окна.
Я также изменил,
statusline
чтобы включить номер буфера%2n
, чтобы я всегда знал, какой буфер редактируется. Увидеть:h statusline
источник
вы знаете приложение MacVim? Это VIM, отполированный для OS X, и одна из его функций - поддержка вкладок (CMD + T для открытия новой вкладки), у него есть ящик и т.д ... (прочтите это: http://zerokspot.com/weblog/2008 / 08/03 / macvim-as-textmate-replace / )
Попытайся!
С уважением Михал
источник
NerdTree лучше всего подходит для навигации по файлам в vim.
Ссылка ниже - хорошее введение в nerdtree.
http://www.catonmat.net/blog/vim-plugins-nerdtree-vim/
источник
Вот кое-что довольно тривиальное, что я вставляю в свой
.vimrc
. Он загрузит файл из любого подкаталога.Так что я могу просто сказать:
: Er Main.java
и он будет искать подкаталоги, находить
Main.java
и загружать их. Это не очень хорошо подходит для нескольких файлов с одним и тем же именем, но это быстро и просто.Другой инструмент, который я использую, - это VTreeExplorer , который предоставляет окно файлов / каталогов в виде дерева и не требует каких-либо специальных параметров сборки от VIM (т.е. это ванильный плагин).
источник
models.py
,views.py
и т.д.Мой рабочий процесс для поиска файлов - wildmenu, autocwd и
:e
.Соответствующие части в
.vimrc
:И как им пользоваться:
Это дает все файлы в текущем каталоге, которые начинаются с myf. Вы также можете
<Tab>
через них. Используйте возврат, чтобы открыть :)^D
всегда даст вам все совпадения. Поскольку autocmd всегда попадает в папку текущего файла, с ним легко работать. Если ты внутриfoo/bar.py
и хочешь пойти кfoo/baz.py
тебе, сделай только:e baz.py
и ты там. Это также работает с буферами (:b foo^D
перечисляет все буферы, начинающиеся с foo)источник