几个月以来,我一直在使用vim和优秀的逃犯插件.但是今天,由于我无法解决的原因,该:Gstatus命令改变了行为.
它仍然打开一个"git status"式屏幕,它会响应"R"来刷新它.但是,当我进入"修改:..."列表并点击"D"时,而不是让两个分割窗口显示差异,我只是得到"git diff"输出.此外,在修改后的文件上点击" - "根本不会显示它.
这就像所有的力量都从这种模式消失了?
我还怀疑它所打开的"git status"屏幕实际上是git status的确切输出.它也有不同的格式; 顶行为绿色,下一行用红色背景加粗 - 这与git commit消息相同(如果不将第二行留空则突出显示错误).不确定这是否有助于或只是混淆问题...
根据下面的评论,我检查了该屏幕上的键映射:
:verbose nmap D
> n D *@:<C-U>execute <SNR>72_StageDiff('Gvdiff')<CR>
> Last set from ~/.dotfiles/vim/bundle/vim-fugitive/plugin/fugitive.vim
:verbose nmap -
> n - *@:<C-U>silent execute <SNR>72_StageToggle(line('.'),line('.')+v:count1-1)<CR>
> Last set from ~/.dotfiles/vim/bundle/vim-fugitive/plugin/fugitive.vim
Run Code Online (Sandbox Code Playgroud)
任何人都知道我正在制作什么错误,或者我正在获得的其他状态屏幕是什么?
我知道如何在文件中运行gblame.
我知道如何在目录中的所有文件中grep内容.
我希望看到围绕那个包含内容的特定行的gblame.例:
$ blame -R "content" ./
Run Code Online (Sandbox Code Playgroud)
我看到了一个文件列表.我想要了解所有主题,并了解谁触及了这些代码行.
我已经安装了bling / vim-airline,希望我的状态栏中可以有一个很酷的分支名称。

我按照航空公司回购中的说明进行操作,并安装了tpope / vim-fugitive。但是在下载,安装,修改并重新启动vim之后,我只是无法在状态栏上找到该分支。相反,我有这个:

我怀疑.vimrc文件有问题吗?
这是与航空公司有关的部分:
set ttimeoutlen=50
let g:airline_theme = 'powerlineish'
let g:airline#extensions#hunks#enabled=0
let g:airline#extensions#branch#enabled=1
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
let g:airline_symbols.space = "\ua0"
Run Code Online (Sandbox Code Playgroud)
PS我是vim的新手,任何建议将不胜感激,谢谢!
我使用git bare存储库来版本化我的配置文件。我可以使用与使用普通git存储库相同的命令,只需包含一些标志:
git --git-dir=/home/kunzaatko/.cfg/ --work-tree=/home/kunzaatko/ __command__
Run Code Online (Sandbox Code Playgroud)
代替
git __command__
Run Code Online (Sandbox Code Playgroud)
我将vim-fugitive与普通git存储库结合使用,主要是为了进行重大更改,并通过部分暂存(仅一组离散的块/更改)并单独提交它们来将其添加到许多不同的提交中。我用:Gdiff它来获得我可以使用的漂亮且高效的界面。
我想用我的配置 git bare 存储库来做到这一点。
将存储库重命名为.cfg.git. 这并没有带来任何改变。表明这应该有效的问题
我尝试更改git-fugitiveb:git_dir的内部变量:
:let b:git_dir=/home/kunzaatko/.cfg/
Run Code Online (Sandbox Code Playgroud)
:chdir /home/kunzaatko/.cfg/
Run Code Online (Sandbox Code Playgroud)
git submodule命令将裸存储库放入范围内。问题在于将git 存储库的根放在哪里......我基于这种可能性的问题有没有办法将git bare存储库与git-fugitive一起使用?
(或任何其他可以解决我的用例的建议)
我的系统是带有MacVim 7.3(GUI)和Vim 7.2(在iTerm上)的OS X 10.6.
在MacVim上,Fugitive根本不起作用.
在Vim上,它有点不同.我已设置映射以打开.vimrc文件,如下所示:
nmap <silent> <leader>ev :e $MYVIMRC<CR>
Run Code Online (Sandbox Code Playgroud)
在打开vim之后,所有的Fugitive命令都可用,但在.vimrc使用上面的映射打开文件后,我无法发出任何Fugitive :G*命令.如果我.vimrc正常打开文件(即:e ~/.vimrc),一切都很好.
我的整个.vim目录(与.vimrc作为vimrc根)可以访问这里.
我能做些什么才能让它发挥作用?
我用过:Gstatus,可以看到状态窗口.如何直接跳转到文件已被修改的行.
# On branch refactor-modeldatasource
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: graphos/sources/model.py
#
no changes added to commit (use "git add" and/or "git commit -a")
Run Code Online (Sandbox Code Playgroud)
我在第一线,想要跳到说的那条线modified .......
使用vim,我可以在vim打开时启动一个命令,例如:打开vim并创建一个拆分
vim +sp
Run Code Online (Sandbox Code Playgroud)
我使用 vim-fugitive 插件,我使用的是
vim +Gstatus
Run Code Online (Sandbox Code Playgroud)
我得到
E492: No es una orden del editor: Gstatus
Run Code Online (Sandbox Code Playgroud)
也许是因为 vim 启动时没有加载逃犯 Gstatus
当我从终端启动 vim 时,如何在加载插件后执行命令?
特别是,如何从Gstatus预加载的终端启动 vim 。
我正在搜索我的存储库(使用vim-fugitive:Ggrep),我有不同的.js文件 - 缩小的文件和常规文件.
我想省略git grep缩小的文件(换句话说 - 与查询匹配的很长的行).我调查git help grep并用谷歌搜索但找不到任何东西.欢迎所有想法.
我正在使用lightline.vim,我想展示当前的git分支.目前,我正在使用vim-fugitive这样做,但是,我根本不使用这个插件,除了在状态行中显示git分支.
我的问题是:
有没有办法在不使用逃犯的情况下在状态行中显示git分支?
我试图创建一个我挂钩到lightline的自定义函数.该函数使用systemvimscript函数获取当前git分支.它(没有)运行良好,除了状态线在每次击键时刷新,这打破了其他一切并使vim无法使用.从本质上讲,git分支是system在每次击键时使用该函数获取的......
所以这不是一个可行的解决方案.我"可以"做的是,创建一个全局变量,说明是否获取了git分支,并阻止自定义函数在已经获取的情况下再次获取分支名称.然后每次MacVim失去焦点时我都可以再次获取分支名称(不知道如何使用终端vim进行此操作).虽然这不太理想......
关于如何解决这个问题的任何想法好吗?
Git-fugitive提供了一个极好的blame视图 ( :Gblame),如下所示,提交 ID 显示在最左边:
ae228e74 (Dotan Cohen 2013-06-30 14:55:45 +0300)| 71 if operation == '-':
9a5d1a16 (Dotan Cohen 2013-06-26 18:59:55 +0300)| 72 sys.exit()
9a5d1a16 (Dotan Cohen 2013-06-26 18:59:55 +0300)| 73 elif operation == '1':
1e4f1463 (Dotan Cohen 2013-07-02 20:18:49 +0300)| 74 system_statistics.main(env)
9a5d1a16 (Dotan Cohen 2013-06-26 18:59:55 +0300)| 75 elif operation == '2':
016fe2a8 (Dotan Cohen 2013-10-30 12:18:04 +0200)| 76 configure_system.main(env)
5835f826 (Dotan Cohen 2013-07-02 20:17:31 +0300)| 77 elif operation == '3':
016fe2a8 (Dotan Cohen …Run Code Online (Sandbox Code Playgroud) 我对 vim 还很陌生,所以我希望这个问题不是太基本,但我在 fugitive 的 DOC 中找不到答案。我希望添加一个执行以下操作的切换函数:
if :Gblame buffer is open:
close buffer
else
execute "normal :Gblame<CR>"
endif
map gb :call (the above function)<CR>
Run Code Online (Sandbox Code Playgroud)
我正在考虑添加一个在 1 或 0 之间变化的变量,具体取决于我使用“gb”映射的次数。
但我真正想要的是一种检查缓冲区是否打开的方法。那可能吗?
vim-fugitive ×11
vim ×9
git ×5
blame ×1
git-bare ×1
git-blame ×1
git-grep ×1
grep ×1
macvim ×1
vim-airline ×1
vim-plugin ×1