2013-05-07 2 views
2

Когда вы работаете с более чем 20 файлами, количество открываемых вкладок переполняет емкость полос вкладок, и становится очень неприятно переключаться между ними. Кроме того, нажатие на вкладки является анти-vimish. Это действительно неэффективно.VIM неэффективен при работе со многими файлами

Я думал что-то в строках: 1. Вкладки сохраняются слева (боковые вкладки имеют более высокую емкость) 2. Знаки тегов назначаются им (a, b, c, d ...) 3. Чтобы перейти на вкладку, вы просто набираете ключ + его тег

Я думаю, что он не может быть быстрее этого. Есть что-то в этом роде?

+0

Я использую буферы, есть много хороших плагинов, которые помогают мне быстро найти файл. например CtrlP, FuzzyFinder ... Я просто не могу понять, как работать с вкладками. Это меня всегда смущает. может быть, пришло время попробовать буферы? Кстати, если вы говорите «нажимаете», это в любом случае неэффективно, так как ваша рука/палец покинули домашние ключи. :) – Kent

+0

@ Kent Yea, это ужасно. Я не могу получить буферы. Вы должны набирать безумное количество слов для работы с ними. : ls , чтобы ПОСМОТРЕТЬ их, а затем обмануть своими глазами (не очень дружелюбный дисплей), а затем: buN и только те, что вы на нужный файл! – MaiaVictor

+0

Не делайте это трудно. ': b' может принимать частичное имя файла и подстановочные знаки с помощью' * '. Изучите расколы с ': sp',': vps', ': sb' и другими. Используйте '', чтобы быстро вернуться в последний буфер. Используйте заглавные знаки, чтобы вернуться, чтобы установить «закладки» в те места, которые, как вы знаете, вы вернетесь позже. Если вы все еще хотите использовать вкладки, по крайней мере, используйте 'gt' и' gT' для переключения вкладок. –

ответ

0

Вы можете использовать gt для перехода к следующей вкладке и gT для перехода на предыдущую вкладку.

Вы также можете использовать <number>gt для перехода на вкладку с этим номером. Это позволяет вам перемещаться на любую вкладку, исходя из ее числа. Вкладки начинаются с подсчета числа 1. Чтобы узнать, на каком количестве каждой вкладке вы можете использовать :tabs

1

В браузерах и других приложениях вы должны использовать вкладки; больше ничего. В Vim вкладки - это только последнее (версия 7) дополнение и полностью необязательное. Использование слишком многих из них рассматривается многими как анти-шаблон. Обычно я использую их для разделения различных проектов.

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

PS: То, что вы представляете как решение (боковые вкладки), не может быть выполнено в Vim.

+0

Я нашел свое оптимальное решение, за исключением того, что его не существует: http://o7.no/12QUcHu, если у NERDTree слева могут быть такие теги, как «aa», «ab», «ac» ... и если бы я мог, например, перейти к файлу с «baa» ... это было бы прекрасно. Вместо этого я должен использовать комбинацию NERDTree и CTRLP и набирать еще несколько символов (а также интерактивно сканировать результаты CtrlP, что очень много). Не уверен, насколько сложно было бы реализовать тег. Я должен попробовать – MaiaVictor

2

В других редакторах вкладка является прокси для файла: файл открывается, его содержимое помещается в память, обрабатывается и, наконец, отображается в окне, прикрепленном к вкладке с меткой, установленной для имени файла. tab == file.

В Vim вкладка представляет собой «рабочее пространство», предназначенное для размещения любого количества окон (по умолчанию 1), которые в свою очередь могут отображать любой буфер из списка буферов. Считайте также, что метка вкладки по умолчанию является именем активного окна, которое может быть полезным или не может быть полезным (кому нужна вкладка с надписью Quickfix window?). tab != file.

Основной единицей является буфер и буферы глобальный: буфер может отображаться в окнах x в y вкладок с x и y превосходной или равной 0. Поскольку есть способ привязать буфер к определенному окну или вкладке, используя вкладки Vim, как если бы это было ошибкой.

Право Способ перехода - это перетаскивание вкладок и обращение к буферам, непосредственно. В конце концов, вы хотите перейти к определенному файлу, не так ли?

Перемещение между буферами является быстрым и легким:

:bn 
:bp 
:b <Tab> 
:b *foo<Tab> 

специально с пользовательским отображением:

nnoremap gb :buffers<CR>:b<Space> " beautiful! 

и намного более естественное, чем заставляя Vim в эту ужасные разделителях-ориентированной парадигму. Если у вас все еще есть проблемы со скоростью, даже с этим сопоставлением gb, попробуйте CtrlP, Command-T, FuzzyFinder, LustyExplorer или их много братьев и сестер.

Кроме того, в общем случае вкладки являются плохими идеями, поскольку они, как правило, теряют свою полезность по мере увеличения их количества ... горизонтальное пространство, доступное для отображения вкладок, обычно фиксируется или, по крайней мере, ограничено. Поскольку метки написаны горизонтально, а имена файлов обычно больше, чем несколько символов, доступное пространство быстро сокращается, и всевозможные компромиссы должны быть сделаны, чтобы сохранить вкладки «пригодными для использования». Имена и вкладки сокращаются или gyzmos добавляются на каждом конце строки вкладок для прокрутки ... в основном количество усилий, необходимых для поиска того, что вы ищете, слишком быстро увеличивается, чтобы вкладки были действительным универсальным решением.

2

Я возвращаю это excellent blog post, объясняя разницу между «окном», «буфером» и «вкладкой» в Vim.

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

Смежные вопросы