首页 文章

如何让Git使用我选择的编辑器进行提交?

提问于
浏览
2035

我更愿意在Vim中编写提交消息,但它在Emacs中打开它们 .

如何配置Git以始终使用Vim?请注意,我想在全球范围内执行此操作,而不仅仅是针对单个项目 .

18 回答

  • 14

    复制粘贴:

    git config --global core.editor "vim"
    

    如果你做了'd like to know what you' . 来自 man git-commit

    环境和配置变量用于编辑提交日志消息的编辑器将从GIT_EDITOR环境变量,core.editor配置变量,VISUAL环境变量或EDITOR环境变量(按此顺序)中选择 .

  • 5

    对于emacs用户

    .emacs

    (server-start)
    

    shellrc

    export EDITOR=emacsclient
    
  • 155

    在Ubuntu和Debian上(感谢@MichielB)也可以通过运行来更改默认编辑器:

    sudo update-alternatives --config editor
    

    这将提示以下内容:

    There are 4 choices for the alternative editor (providing /usr/bin/editor).
    
      Selection    Path                Priority   Status
    ------------------------------------------------------------
      0            /bin/nano            40        auto mode
      1            /bin/ed             -100       manual mode
      2            /bin/nano            40        manual mode
    * 3            /usr/bin/vim.basic   30        manual mode
      4            /usr/bin/vim.tiny    10        manual mode
    
    Press enter to keep the current choice[*], or type selection number:
    
  • 20

    在Mac OSX 10中将Sublime Text 2设置为Git提交编辑器

    运行此命令:

    $ git config --global core.editor "/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"
    

    要不就:

    $ git config --global core.editor "subl -w"
    
  • 1

    对于想要使用Windows子系统Linux的neovim的Windows用户:

    git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"

    这不是一个万无一失的解决方案,因为它不处理交互式变基(例如) . 改进非常欢迎!

  • 1

    试试 EDITOR=vim git commit .

    或者你可以在你的bashrc中通过 export EDITOR=vim 将你的EDITOR设置为vim .

  • 9

    在Windows 7中,在添加“Sublime”编辑器时它仍然给我一个错误:

    由于空提交消息而中止提交 .

    Sublime无法保持专注 .

    为了解决这个问题,我在c:/ users / username /文件夹中打开了.gitconfig文件,并在双引号外添加了以下行--wait选项 .

    [core]
          editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait
    

    希望它对Sublime面临类似问题的人有所帮助 .

  • 17

    如果你正在与使用命令行的设计师合作,那么Pico,并且不知道捷径;)

    git config --global core.editor "pico"
    

    要么

    export VISUAL=pico
    export EDITOR=pico
    
  • -1

    Atom作为你的git编辑器

    git config --global core.editor "atom --wait"
    

    需要将Atom配置为从命令行运行以使其工作:OS X:从Atom安装shell命令:菜单栏> Atom>安装Shell命令Windows:无需任何操作 - atom配置为从命令行运行默认情况下

  • 489

    对于想要使用Kinesics文本编辑器的Windows用户

    创建一个名为'k.sh'的文件,添加以下文本并放在您的主目录(〜)中:

    winpty "C:\Program Files (x86)\Kinesics Text Editor\x64\k.exe" $1
    

    在git提示符下键入:

    git config --global core.editor ~/k.sh
    
  • 3

    Sublime Text 3作为git编辑器的最佳设置(Windows和Linux说明):

    要在Windows中按照这些说明操作,请确保已安装git for Windows . 在Windows中,我喜欢使用Git BASH,以便感觉更像Linux .

    首先,我们要创建一个特殊的Sublime Text项目,以便我们可以指定我们想要在git调用编辑器时设置的特殊项目设置,以便在git中编辑时更容易 . 例如,我通常在大多数项目中将标尺设置为120个字符,但对于git提交消息,我希望它为72个字符,以便在调用 git loggit lg时它很适合终端 .


    1.创建一个Sublime Text项目,其中包含我们要用来编辑git commit消息的设置

    打开Sublime Text并转到"File" - > "New Window"以创建一个新的匿名项目 . 转到"Project" - > "Save Project As..."并选择保存位置 . In Linux 我将其保存在我的Linux主目录中,文件名为 .gitconfig.sublime-project . 因此它的路径是: ~/.gitconfig.sublime-project . In Windows 也将它保存在您的主目录中,例如: C:\Users\MY_USER_NAME\.gitconfig.sublime-project 现在转到"Project" - > "Edit Project"来编辑项目设置 . 粘贴以下内容并保存设置 . 如果需要,可以对项目设置进行进一步编辑 .

    {
        //For folder settings help see here: https://www.sublimetext.com/docs/3/projects.html 
    
        "folders":
        [
    
        ],
    
        "settings":
        {
    
            // Disables horizontal scrolling if enabled.
            // May be set to true, false, or "auto", where it will be disabled for
            // source code, and otherwise enabled.
            "word_wrap": false,
    
            // Set to a value other than 0 to force wrapping at that column rather than the
            // window width
            "wrap_width": 0,
    
            // Columns in which to display vertical rulers
            "rulers": [72, 50], //72 is recommended by git for commit message content, and 50 for commit titles
    
            // The number of spaces a tab is considered equal to
            "tab_size": 4,
    
            // Set to true to insert spaces when tab is pressed
            "translate_tabs_to_spaces": true,
        },
    
        "build_systems":
        [
    
        ]
    
    }
    

    2.设置git使用的编辑器

    现在我们需要通过编辑 .gitconfig 文件来设置git使用的编辑器 .

    对于Linux:

    您的用户副本将位于 ~/.gitconfig 中 . 打开此文件并添加以下行 . 一定要使用正确的路径名来创建上面刚刚创建的git项目!我正在使用 ~/.gitconfig.sublime-project .

    [core]
        editor = subl --project ~/.gitconfig.sublime-project --wait
    

    --wait 很重要,因为它强制git等到你继续之前关闭文件 . --project 行对于告诉Sublime Text,只要git打开Sublime,你想要打开哪个项目是很重要的 .

    Per @ digitaldreamer上面的回答(https://stackoverflow.com/a/2596835/4561887),“ subl 可以用可执行文件的完整路径替换,但[正确安装[Sublime]时,[别名 subl ]通常可用 . ”

    对于Windows:

    对于Windows,首先阅读Linux说明以获取背景信息 . 现在我们将做一些几乎相同的事情 .

    (OPTIONAL: create a subl alias for use in Git BASH):

    打开文本编辑器(例如:记事本,记事本,Sublime Text,Geany等),并在主目录中创建一个名为".bash_profile"的文件 . 因此它的路径是: C:\Users\MY_USER_NAME\.bash_profile . 将以下内容保存到其中:

    alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe"
    

    这将创建一个名为 subl 的Git BASH别名,我们现在可以在Git BASH for Windows中使用它来轻松打开Sublime . 这个步骤对于一般的Git BASH使用是非常有用的 . 现在你可以在Git BASH中调用 subl . 来打开你当前的新Sublime项目目录 .

    (MANDATORY):

    编辑主目录中的 .gitconfig 文件: C:\Users\MY_USER_NAME\.gitconfig ,向其添加以下内容 . 请注意上面Linux指令的细微更改:

    [core]
      editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
    
    • 请注意,您必须指定Sublime Text可执行文件的完整路径 . Note the direction of the slashes! 使用 / NOT \ 分隔路径名中的文件夹! (感谢VonC for helping me see this) .

    • 我们为上面的Git BASH制作的 subl 别名不像我们在Linux示例中那样使用它,而是必须指定整个路径,如上所示 .

    • 但是, ~ 符号仍可用于访问Windows主目录 .


    2.5.(可选)将“Git”包安装到Sublime Text 3中 .

    这为 git commit 消息提供了语法高亮,以及访问其他git命令,例如 git blame (我在Sublime Text中经常使用)或 git commit (我不喜欢命令行用于一般git流,因为我'我在下面的评论中提到这个答案) .

    要安装软件包:首先,确保安装了“软件包控制” . 接下来,按Ctrl Shift P(与工具→命令选项板相同)并键入“Package Control:Install Package”的全部或部分,然后按Enter键 . 在出现的搜索框中,搜索包"Git"并按Enter键或单击它以自动安装它 .

    安装完成后,Ctrl Shift P然后搜索"git"将显示您现在可以在Sublime Text内部使用的git命令,例如 git blame .


    3.使用它

    现在,当您从命令行调用 git commit 时,Sublime Text将打开到我们上面创建的 .gitconfig.sublime-project ,该项目's settings! As you type a paragraph you' ll注意它延伸超过我们设置的标尺,因为软自动换行已关闭 . To force hard wrap via auto-inserted hard-returns at the end of each line, put your cursor on the long line you want auto-wrapped and press Alt + Q. 现在它将在72个字符处硬包装/硬折叠,这是我们在上面的项目设置'"rulers"参数中设置的 .

    现在,使用Ctrl S保存提交消息,然后使用Ctrl Shift W退出(以完成 git commit ) .

    完成!

  • 9

    对于Textmate用户

    当您要编辑提交时,这将打开Textmate编辑器 . 需要安装textmate命令行工具 .

    git config --global core.editor "mate -w"

  • 1

    Windows:将记事本设置为默认提交消息编辑器

    git config --global core.editor notepad.exe
    

    按Ctrl S保存提交消息 . 要丢弃,只需关闭记事本窗口而不保存 .

    如果您点击了保存的快捷方式,然后决定中止,请转到文件 - >另存为,然后在打开的对话框中,将“另存为类型”更改为“所有文件(* . *)” . 您将看到名为“COMMIT_EDITMSG”的文件 . 删除它,然后关闭记事本窗口 .

    Edit: 或者,更方便的是,从打开的记事本窗口中删除所有内容并点击保存 . (感谢mwfearnley的评论!)

    我认为对于小写,例如提交消息,记事本服务最好,因为它很简单,有窗口,立即打开 . 当你有大量的插件和东西时,即使你的崇高也可能需要一两秒才能被激怒 .

  • -1

    对于Mac应用商店中TextWrangler的用户:

    git config --global core.editor "open -n -W -a TextWrangler"
    

    此外,请确保您的“TextWrangler>首选项>应用程序>当TextWrangler变为活动状态时:”设置设置为“不执行任何操作”

    这适用于OS X 10.11.4和Mac应用程序商店中的TextWrangler 5.0.2 .

    说明:

    -n 表示在新实例中打开 .

    -W 表示在使用已编辑文件的内容作为提交消息之前等待应用程序退出 .

    -a TextWrangler 表示使用TextWrangler应用程序打开文件 .

    有关详细信息,请参阅Mac终端应用中的 man open .

  • 52

    Mvim作为你的git编辑器

    与所有其他GUI应用程序一样,您必须使用wait标志启动mvim .

    git config --global core.editor "mvim --remote-wait"
    
  • 49

    在Windows 7中,将编辑器设置为记事本

    • 打开任何文本编辑器 .

    • 打开此文件: C:\Users\YOUR_USERNAME\.gitconfig

    • 将此部分添加到底部:


    [core]
        editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe'
    
    • 保存并关闭文件 .

    • 当您使用git提交时,只需编写 git commit 并按 Enter . 它将弹出打开记事本 .

    • 在文件顶部写下提交消息,然后保存并关闭文件 . 完成!

  • 21

    使Visual Studio代码(vscode)成为您的默认git编辑器

    git config --global core.editor "code --wait"
    
  • 2839

    如果你只想为Git设置编辑器,那么要做(你不需要两者):

    • 在Git配置中设置core.editorgit config --global core.editor "vim"

    • 设置GIT_EDITOR环境变量: export GIT_EDITOR=vim


    如果要为Git和其他程序设置编辑器,请设置标准化的 VISUALEDITOR 环境变量*:

    export VISUAL=vim
    export EDITOR="$VISUAL"
    

    *不一定需要设置两者,但某些程序可能不使用更正确的VISUAL . 见VISUAL与EDITOR .


    For Sublime Text :将其添加到 .gitconfig . --wait 很重要 . (它允许在sublime中键入文本并等待save / close事件 .

    [core]
        editor = 'subl' --wait
    

    'subl'可以替换为可执行文件的完整路径,但通常在正确安装时可用 .

相关问题