Сейчас я использую fugitive для управления почти всем, что касается git, но я не могу найти хороший рабочий процесс для быстрой визуализации и переключения между доступными ветвями.
Я могу сделать :Git checkout <branch-name>, проблема в том, что он автоматически заполняет как имена файлов, так и ветви, и я бы предпочел список ветвей.
Нажмите CTRL- Zв обычном режиме вы вернетесь обратно в оболочку и приостановите Vim. После выполнения вашего git checkout [branchname]типа введите fgкоманду, чтобы вернуться к приостановленному Vim, что также заставит Vim обновиться.
Ванильный графический интерфейс Vim
Некоторые реализации gvim будут иметь :shellподдержку, которая откроет оболочку внутри Vim, используя тупой терминал. Однако может быть проще просто набрать:
:!git checkout [branchname]
Это выполнит команду без необходимости открывать новое приглашение оболочки. (Эта опция также может использоваться в терминале Vim).
ВИМ-беглец
vim-fugitive - это плагин, который позволяет вам использовать Git из Vim. Команда будет:
:Git checkout [branchname]
ВИМ-merginal
vim-merginal - это плагин, который использует vim-fugitive и предоставляет удобный для пользователя интерфейс.
Это fugitive, нет fugative, и это то, что ОП уже использует.
Муру
1
Потрясающий ответ. vim-merginalэто то, что я искал.
Серхио Д. Маркес
1
Мне нравится, ctrl-zпотому что он автоматически загружает файлы. Сотрудникам нравится иметь окно tmux для командной строки и одно для vim, но когда они делают извлечение или объединяются, когда возвращаются в vim, они должны переходить к каждому открытому файлу и :e!каждый раз. ( :bufdo e) что боль помнить. Вместо этого легче, ctrl-zчем когда fgVim происходит :eавтоматически.
Вы должны принять ваш терминал. Если вы используете CTRL-Z, это будет фон Vim (или любой процесс, который вы в настоящее время выполняете), тогда вы можете запустить любые команды, которые вы хотите, fgчтобы вернуть процесс на передний план:
Ответ @ kubek2k настолько феноменален. Это решение лучше, чем я мог себе представить, и реализовал его в меньшем количестве строк кода, чем я мог себе представить. Это открыло дверь, чтобы помочь мне понять мощное персонализированное использование «fzf».
Я немного изменил его, чтобы дополнительно предоставить:
Использует беглеца, чтобы получить ссылки вместо командной строки (лучшая поддержка для окон)
Перечислите теги вместе с ветками
Вот небольшая модификация:
function! s:gitCheckoutRef(ref)
execute('Git checkout ' . a:ref)
" call feedkeys("i")
endfunction
function! s:gitListRefs()
let l:refs = execute("Git for-each-ref --format='\\%(refname:short)'")
return split(l:refs,'\r\n*')[1:] "jump past the first line which is the git command
endfunction
command! -bang Gbranch call fzf#run({ 'source': s:gitListRefs(), 'sink': function('s:gitCheckoutRef'), 'dir':expand('%:p:h') })
fugitive
, нетfugative
, и это то, что ОП уже использует.vim-merginal
это то, что я искал.ctrl-z
потому что он автоматически загружает файлы. Сотрудникам нравится иметь окно tmux для командной строки и одно для vim, но когда они делают извлечение или объединяются, когда возвращаются в vim, они должны переходить к каждому открытому файлу и:e!
каждый раз. (:bufdo e
) что боль помнить. Вместо этого легче,ctrl-z
чем когдаfg
Vim происходит:e
автоматически.:checktime
пригодится перезагрузить все открытые буферы.Используйте ВИМ-merginal плагин ( беглый расширение). Он предлагает интерактивный TUI для:
источник
Вы должны принять ваш терминал. Если вы используете CTRL-Z, это будет фон Vim (или любой процесс, который вы в настоящее время выполняете), тогда вы можете запустить любые команды, которые вы хотите,
fg
чтобы вернуть процесс на передний план:источник
:shell
это способ перейти или!git checkout [branchname]
У беглеца
Git checkout <branch>
есть недостаток в том, что он не выполняет автозаполнение имени ветви. Используя fzf.vim я создал эту команду:Надеюсь, что вы найдете ее полезной
источник
Ответ @ kubek2k настолько феноменален. Это решение лучше, чем я мог себе представить, и реализовал его в меньшем количестве строк кода, чем я мог себе представить. Это открыло дверь, чтобы помочь мне понять мощное персонализированное использование «fzf».
Я немного изменил его, чтобы дополнительно предоставить:
Вот небольшая модификация:
источник