vim: vnew, но принимает буфер вместо имени файла? - PullRequest
3 голосов
/ 26 мая 2011

В настоящее время, если я хочу создать новое окно, а затем загрузить буфер, я использую :vnew :buf foo.py. Есть ли одна команда, которая сделает оба?

Ответы [ 2 ]

3 голосов
/ 26 мая 2011

Да, для этого есть команда:

:[N]sb[uffer] [N]                   :sb :sbuffer
        Split window and edit buffer [N] from the buffer list.  If [N]
        is not given, the current buffer is edited.  Respects the
        "useopen" setting of 'switchbuf' when splitting.  This will
        also edit a buffer that is not in the buffer list, without
        setting the 'buflisted' flag.

Вам также могут пригодиться эти команды:

:[N]sbn[ext] [N]                                    :sbn :sbnext
        Split window and go to [N]th next buffer in buffer list.
        Wraps around the end of the buffer list.  Uses 'switchbuf'

:[N]sbN[ext] [N]            :sbN :sbNext :sbp :sbprevious
:[N]sbp[revious] [N]
        Split window and go to [N]th previous buffer in buffer list.
        Wraps around the start of the buffer list.
        Uses 'switchbuf'.

Проблема с обеими командами состоит в том, что они разделяются по горизонтали.Вы можете предшествовать им :vert[ical], но это нарушает вашу единственную командную парадигму: -)

В любом случае, :vert sb foo.py не так уж много печатать, и если вы действительно часто его используете, вы можете рассмотретьсоздание карты для него.Может быть что-то вроде:

cnoremap ,sb vert sb 
1 голос
/ 26 мая 2011

Просто укажите :vnew путь к файлу:

:vnew foo.py

Редактировать:

Как сказал sidyll, нет встроенной команды, которая разбивает окно по вертикали для редактирования буферазатем я создал новую команду ex, которая делает то, что вы хотите:

command! -nargs=1 -complete=buffer -bang Vbuffer vnew | buf<bang> <args>

! после command заменит старый :Vbuffer, если он существует (вы можете удалить его, так как я имеюдобавил его для тестирования), -nargs=1 означает, что новая команда принимает 1 аргумент, который передается команде :buf с <args>, -complete=buffer будет предлагать имена буферов при вводе tab дляимя аргумента и -bang указывают, что новая команда принимает опцию !, которая также передается команде :buf с <bang>.

Просто добавьте эту строку в ~/.vimrc и повторите:source это.; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...