无法执行编辑器

Rob*_*son 153 git vim

我不经常需要修改多个提交消息,但它已经发生过一次或两次,我不记得看到过这种情况.我希望别人有.当我git rebase -i HEAD~7,预期列表在vi中完全按预期打开.我将pick值更改为edit适当的值然后:wq.

结果: Could not execute editor

core.editor在我的全局设置.gitconfigvi(我也改成了vim在绝望的疯狂举动).我尝试过使用mate,但是甚至没有正确打开初始列表,所以我把它改回来了.

我正在使用v1.7.3并欢迎任何建议.

Rob*_*son 184

昨天只是其中的一天.在云雀上,我决定设置vi的完整路径(例如/usr/bin/vi)而不仅仅是可执行文件.现在一切正常.我必须承认我没有得到它,因为vi它本身是完全可执行的(我的$EDITORenv变量也被设置为vi),但它正在工作,我的技术业力最近并没有这么大,所以也许我不应该质疑神灵会......

  • 我把它放在我的全局配置文件中:`git config --global core.editor"/ usr/bin/vim"`. (130认同)
  • 你在哪里设置/ usr/bin/vi的完整路径? (6认同)

Lan*_*tel 155

以下命令

git config --global core.editor /usr/bin/vim
Run Code Online (Sandbox Code Playgroud)

解决它.

[编辑]

现在我看到有人已经在评论中发布了它.希望它对像我这样的盲人来说仍然有用.

  • 例如对于Windows(缺少单引号,是我的问题):git config --global core.editor"'C:\ Program Files(x86)\ Vim\vim74\vim.exe'" (5认同)

Lar*_*rsH 7

与目前为止的其他答案不同,对于我使用vi的绝对路径,并设置git core.editor配置,不足以解决问题.(那些已经到位了.)

在我的情况下,通过在vi命令中添加-f标志来解决问题:

git config --global core.editor '/usr/bin/vi -f'
Run Code Online (Sandbox Code Playgroud)

一旦这个-f选项到位,我可以使用git rebase -i,当我保存并退出提交列表时,rebase继续进行,而不是给出"无法执行编辑器"错误.

VIM手册页说,对于选项-f,

对于GUI版本,Vim不会从它启动的shell中分叉和分离....当Vim由等待编辑会话完成的程序(例如邮件)执行时,应该使用此选项.

我知道,我没有使用GUI版本.我git在masOS Sierra 10.12.6上的终端窗口中运行bash命令行.但是,由于git rebase -i等待编辑会话完成,我想这就是为什么-f这里需要选项.也许vim(没有-f)试图从shell中分离/分离由于某种原因我无法弄清楚.


Ann*_*rom 6

我有这个问题,它是由vim的vcscommand插件的某些部分引起的.使用任何这些命令启动vim会导致退出代码1("错误"):

  • vi
  • vim

但这些给了我退出代码0("成功"):

  • /usr/bin/vi
  • /usr/bin/vim
  • vi -u NONE
  • vim -u NONE

通过重命名和运行以快速运行vim并打印退出代码,我能够通过禁用~/.vimrc和文件将其追溯到特定插件.~/.vimvi -c q ; echo $?