更改终端中打开的文件的默认编辑器? (例如,将其设置为 TextEdit/Coda/Textmate)
Posted
技术标签:
【中文标题】更改终端中打开的文件的默认编辑器? (例如,将其设置为 TextEdit/Coda/Textmate)【英文标题】:Change the default editor for files opened in the terminal? (e.g. set it to TextEdit/Coda/Textmate) 【发布时间】:2011-04-02 03:52:17 【问题描述】:有没有办法让在终端中打开进行编辑的文件改为在 Textedit 中打开?
例如,一个命令可能会打开一个文件进行编辑(如 git commit
),而不是在 vim 或 emacs 中打开该文件,而是在 Textedit(或者您选择的另一个文本编辑应用程序,例如尾声或崇高)。
还有一个额外的问题,有没有办法专门配置 git 以自动打开在应用程序目录的编辑器中运行 git commit
后创建的文件?
【问题讨论】:
是的,我使用的是 OSX (10.6.4)。 我找到的最佳解决方案是使用duti
-> apple.stackexchange.com/a/123954/58507
对于 mac os 10.10+ 以上的解决方案将不起作用。试试这个apple.stackexchange.com/questions/123833/…
【参考方案1】:
设置你的编辑器指向这个程序:
/Applications/TextEdit.app/Contents/MacOS/TextEdit
使用 SVN,您应该将SVN_EDITOR
环境变量设置为:
$ export SVN_EDITOR=/Applications/TextEdit.app/Contents/MacOS/TextEdit
然后,当您尝试提交某些内容时,TextEdit 将启动。
【讨论】:
我更喜欢使用/usr/bin/open
,因为这将使用您设置的finder默认whatever。
你会如何为 git 做同样的事情?
第一个赞只是将 EDITOR= 设置为那个,但是我在第二行输入什么?【参考方案2】:
大多数程序会检查$EDITOR
环境变量,因此您可以将其设置为 bashrc 中 TextEdit 的路径。 Git 也会使用它。
如何做到这一点:
将以下内容添加到您的~/.bashrc
文件中:export EDITOR="/Applications/TextEdit.app/Contents/MacOS/TextEdit"
或者在终端中输入以下命令:echo "export EDITOR=\"/Applications/TextEdit.app/Contents/MacOS/TextEdit\"" >> ~/.bashrc
如果您使用的是 zsh,请使用 ~/.zshrc
而不是 ~/.bashrc
。
【讨论】:
完美,就是这样。我还运行了这个命令以确保 git 按我期望的方式工作。这个git config --global --unset-all core.editor
然后是git config --global --add core.editor "open -W -n"
。
您使用的是不同的外壳吗?
就我而言,我使用的是zsh
,所以显然我需要更新.zshrc
配置文件。
如果编辑器的路径有空格,请使用引号,例如"echo "export EDITOR=\"/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl\"" >> ~/.bashrc"
你可能需要重新加载你的 .bashrc:source ~/.bashrc
谢谢,我已经将 nano 编辑器设置为默认值。以下是将其添加到 OSX 的方法:http://hints.macworld.com/article.php?story=20021017065800302【参考方案3】:
按照 @dmckee 在 cmets 中的建议,使用 git config --global core.editor mate -w
或 git config --global core.editor open
。
参考:http://git-scm.com/docs/git-config
【讨论】:
...并将其设置为使用open
意味着您会自动获得查找器的默认值。因此,finder 中的变化会自然传播。
open
使用启动服务来确定文件类型,主要基于其扩展名。如果文件的扩展名未知,则将无法打开该文件。通常,您的 CLI 编辑器应该是假定文本文件的东西......
一些(非常)明确的说明会很有帮助...参考非常简洁。
@Diogenes:如果您仍需要更明确的帮助,请在另一篇文章中查看我的回答:***.com/questions/6435246/…
最好是git config --global core.editor "open -W"
(否则你会收到Aborting commit due to empty commit message.
错误)。【参考方案4】:
对于崇高文本 3:
defaults write com.apple.LaunchServices LSHandlers -array-add 'LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.sublimetext.3;'
详情请见Set TextMate as the default text editor on Mac OS X。
【讨论】:
【参考方案5】:对于 OS X 和 Sublime Text
使subl
可用。
把这个放到~/.bash_profile
[[ -s ~/.bashrc ]] && source ~/.bashrc
把这个放在~/.bashrc
export EDITOR=subl
【讨论】:
我发现这不适用于chsh
。文件打开,但所有更改都将丢失。我不得不使用chsh -s /bin/zsh
手动切换shell。【参考方案6】:
对于 2018 年来到这里的任何人:
转到 iTerm -> 首选项 -> 配置文件 -> 高级 -> 语义历史 从下拉列表中选择使用编辑器打开,然后从右侧下拉列表中选择您选择的编辑器【讨论】:
【参考方案7】:如果您希望编辑器使用 git 操作,设置 $EDITOR
环境变量可能还不够,至少在 Sublime 的情况下不是 - 例如如果你想rebase,它只会说rebase成功,但是你没有机会以任何方式编辑文件,git会直接关闭它:
git rebase -i HEAD~
Successfully rebased and updated refs/heads/master.
如果您希望 Sublime 与 git 一起正常工作,您应该使用以下方式对其进行配置:
git config --global core.editor "sublime -n -w"
我来这里寻找这个并找到了解决方案in this gist on github。
【讨论】:
【参考方案8】:将 Sublime Text 3 设为默认文本编辑器:(需要重新启动)
defaults write com.apple.LaunchServices LSHandlers -array-add "LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.sublimetext.3;"
make sublime 然后你的默认 git 文本编辑器
git config --global core.editor "subl -W"
【讨论】:
以上是关于更改终端中打开的文件的默认编辑器? (例如,将其设置为 TextEdit/Coda/Textmate)的主要内容,如果未能解决你的问题,请参考以下文章