在 mac 终端中更改我的 code/text 编辑器
Changing my code/text editor in mac terminal
我正在学习版本控制基础知识的课程,但我无法使用我配置“atom”的代码编辑器进行 git 提交。
因此,为了通过我的代码编辑器处理提交,我想切换编辑器,但我的配置命令不会配置 sublime 文本。
这是我尝试使用引号处理配置时发生的情况
$ git config --global core.editor "subl -n -w"
warning: core.editor has multiple values
error: cannot overwrite multiple values with a single value
Use a regexp, --add or --replace-all to change core.editor.
当我输入不带引号的配置命令时,它似乎通过了,但仍然无法使用。
$ git config --global core.editor subl -n -w
usage: git config [<options>]
Config file location
--global use global config file
--system use system config file
--local use repository config file
-f, --file <file> use given config file
--blob <blob-id> read config from given blob object
Action
--get get value: name [value-regex]
--get-all get all values: key [value-regex]
--get-regexp get values for regexp: name-regex [value-regex]
--get-urlmatch get value specific for the URL: section[.var] URL
--replace-all replace all matching variables: name value [value_regex]
--add add a new variable: name value
--unset remove a variable: name [value-regex]
--unset-all remove all matches: name [value-regex]
--rename-section rename section: old-name new-name
--remove-section remove a section: name
-l, --list list all
-e, --edit open an editor
--get-color find the color configured: slot [default]
--get-colorbool find the color setting: slot [stdout-is-tty]
Type
--bool value is "true" or "false"
--int value is decimal number
--bool-or-int value is --bool or --int
--path value is a path (file or directory name)
--expiry-date value is an expiry date
Other
-z, --null terminate values with NUL byte
--name-only show variable names only
--includes respect include directives on lookup
--show-origin show origin of config (file, standard input, blob, command line)
当我尝试提交时,我得到了这个结果。
$ git commit
hint: Waiting for your editor to close the file... subl -n -w: subl: command not found
error: There was a problem with the editor 'subl -n -w'.
Please supply the message using either -m or -F option.
这是我在 运行 git var -l
.
时得到的状态
credential.helper=osxkeychain
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
user.name=xxxx xxxxxxxxxx
user.email=xxxxxxxxxx@yahoo.com
core.editor=c48875ba-b535-4644-ba4d-1a8d011d4c51
core.editor=atom
core.editor=atom
core.editor=atom
core.editor=atom
core.editor=atom
core.editor=atom
core.editor=atom
core.editor=atom
core.editor=atom
cor.editor=subl -n -w
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
core.editor=subl -n -w
GIT_COMMITTER_IDENT=xxxx xxxxxxxxxx <xxxxxxxxxx@yahoo.com> 1573775118 -0500
GIT_AUTHOR_IDENT=xxxx xxxxxxxxxx <xxxxxxxxxx@yahoo.com> 1573775118 -0500
GIT_EDITOR=subl -n -w
GIT_PAGER=less
根本问题是 core.editor
的许多重复设置。您收到的错误消息告诉您一种修复方法:
error: cannot overwrite multiple values with a single value
Use a regexp, --add or --replace-all to change core.editor.
因此将 --replace-all
选项添加到您现有的命令行命令就足够了。
不过,如果您不喜欢,还有更多选择。
如果您确信您选择的编辑器生成良好且适当的(对于 Git)纯文本文件——对于 Git,这意味着文件没有富文本编码,在 UTF-8 中,没有字节顺序标记,并且每一行都以换行符结尾——您可以 运行 您的编辑器直接在您的全局配置文件上:
vim $HOME/.gitconfig
例如,如果您的编辑器是 vim
并且全局配置文件位于常用位置(某些安装使用不太常用的位置)。您也可以 运行:
git config --global --edit
到运行你当前选择的文件编辑器,当然这要求你当前选择的编辑器是你想要的编辑器。 :-) 这里还有一个技巧:
git -c core.editor=some-editor-of-choice --global --edit
-c
选项可让您在这一个命令的持续时间内覆盖您喜欢的任何设置。所以这告诉 Git:使用我为这个命令选择的编辑器,在我的全局配置文件中调用这个临时选择的 core.editor
。
如果您不喜欢这些选项中的任何一个,您可以使用:
git config --global --unset-all core.editor
删除每个 core.editor
设置,之后你有none,之后一个git config
应该允许你设置一个。
请注意,默认情况下 git config --global what.ever value
将替换现有的 what.ever
设置。目前还不清楚你是如何进入你所处的情况的,但是 git config --global --add what.ever another-value
会 添加 一个额外的 what.ever=another-value
.
我正在学习版本控制基础知识的课程,但我无法使用我配置“atom”的代码编辑器进行 git 提交。
因此,为了通过我的代码编辑器处理提交,我想切换编辑器,但我的配置命令不会配置 sublime 文本。
这是我尝试使用引号处理配置时发生的情况
$ git config --global core.editor "subl -n -w"
warning: core.editor has multiple values
error: cannot overwrite multiple values with a single value
Use a regexp, --add or --replace-all to change core.editor.
当我输入不带引号的配置命令时,它似乎通过了,但仍然无法使用。
$ git config --global core.editor subl -n -w
usage: git config [<options>]
Config file location
--global use global config file
--system use system config file
--local use repository config file
-f, --file <file> use given config file
--blob <blob-id> read config from given blob object
Action
--get get value: name [value-regex]
--get-all get all values: key [value-regex]
--get-regexp get values for regexp: name-regex [value-regex]
--get-urlmatch get value specific for the URL: section[.var] URL
--replace-all replace all matching variables: name value [value_regex]
--add add a new variable: name value
--unset remove a variable: name [value-regex]
--unset-all remove all matches: name [value-regex]
--rename-section rename section: old-name new-name
--remove-section remove a section: name
-l, --list list all
-e, --edit open an editor
--get-color find the color configured: slot [default]
--get-colorbool find the color setting: slot [stdout-is-tty]
Type
--bool value is "true" or "false"
--int value is decimal number
--bool-or-int value is --bool or --int
--path value is a path (file or directory name)
--expiry-date value is an expiry date
Other
-z, --null terminate values with NUL byte
--name-only show variable names only
--includes respect include directives on lookup
--show-origin show origin of config (file, standard input, blob, command line)
当我尝试提交时,我得到了这个结果。
$ git commit
hint: Waiting for your editor to close the file... subl -n -w: subl: command not found
error: There was a problem with the editor 'subl -n -w'.
Please supply the message using either -m or -F option.
这是我在 运行 git var -l
.
credential.helper=osxkeychain
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
user.name=xxxx xxxxxxxxxx
user.email=xxxxxxxxxx@yahoo.com
core.editor=c48875ba-b535-4644-ba4d-1a8d011d4c51
core.editor=atom
core.editor=atom
core.editor=atom
core.editor=atom
core.editor=atom
core.editor=atom
core.editor=atom
core.editor=atom
core.editor=atom
cor.editor=subl -n -w
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
core.editor=subl -n -w
GIT_COMMITTER_IDENT=xxxx xxxxxxxxxx <xxxxxxxxxx@yahoo.com> 1573775118 -0500
GIT_AUTHOR_IDENT=xxxx xxxxxxxxxx <xxxxxxxxxx@yahoo.com> 1573775118 -0500
GIT_EDITOR=subl -n -w
GIT_PAGER=less
根本问题是 core.editor
的许多重复设置。您收到的错误消息告诉您一种修复方法:
error: cannot overwrite multiple values with a single value
Use a regexp, --add or --replace-all to change core.editor.
因此将 --replace-all
选项添加到您现有的命令行命令就足够了。
不过,如果您不喜欢,还有更多选择。
如果您确信您选择的编辑器生成良好且适当的(对于 Git)纯文本文件——对于 Git,这意味着文件没有富文本编码,在 UTF-8 中,没有字节顺序标记,并且每一行都以换行符结尾——您可以 运行 您的编辑器直接在您的全局配置文件上:
vim $HOME/.gitconfig
例如,如果您的编辑器是 vim
并且全局配置文件位于常用位置(某些安装使用不太常用的位置)。您也可以 运行:
git config --global --edit
到运行你当前选择的文件编辑器,当然这要求你当前选择的编辑器是你想要的编辑器。 :-) 这里还有一个技巧:
git -c core.editor=some-editor-of-choice --global --edit
-c
选项可让您在这一个命令的持续时间内覆盖您喜欢的任何设置。所以这告诉 Git:使用我为这个命令选择的编辑器,在我的全局配置文件中调用这个临时选择的 core.editor
。
如果您不喜欢这些选项中的任何一个,您可以使用:
git config --global --unset-all core.editor
删除每个 core.editor
设置,之后你有none,之后一个git config
应该允许你设置一个。
请注意,默认情况下 git config --global what.ever value
将替换现有的 what.ever
设置。目前还不清楚你是如何进入你所处的情况的,但是 git config --global --add what.ever another-value
会 添加 一个额外的 what.ever=another-value
.