And*_*rew 19 cygwin bash notepad++
我正在运行 Cygwin 并希望使用 Notepad++ 作为主要的 shell 编辑器,有点像我在 Mac 上的编辑器,我可以在其中键入mate whatever
以打开 TextMate 的一个实例。在我~/.bashrc
的 Cygwin 文件中,我设置了以下别名和环境变量:
export EDITOR="/cygdrive/c/Program\ Files/Notepad++/notepad++.exe"
alias np="/cygdrive/c/Program\ Files/Notepad++/notepad++.exe"
Run Code Online (Sandbox Code Playgroud)
它主要有效:当我键入np whatever
或 Cygwin 程序调用 $EDITOR 时,Notepad++ 会打开。
但是,shell 会等待 Notepad++ 关闭,直到那时才允许任何输入。这可能特定于 bash,但是如何从 Cygwin 打开 Notepad++ 并告诉 shell不要等待退出代码继续?&
在 alias 命令的末尾添加 a不能正常工作 - 它只是打开一个未命名的文件并发出警告filename: command not found
而不是打开文件。
谢谢!
Dou*_*ris 17
您可以尝试使用一个bash
函数在&符号之前传递参数:
np ()
{
/cygdrive/c/Program\ Files/Notepad++/notepad++.exe $* &
}
Run Code Online (Sandbox Code Playgroud)
但更大的问题可能是不等到 Notepad++ 退出的整个想法。$EDITOR
通常使用的 Shell 命令旨在等待编辑器发回编辑已完成的指示。这通常意味着编辑器已退出(例如使用vi
或nano
)。
Emacs 有一种方法可以将您设置EDITOR
为emacsclient
,然后当您完成编辑时,您可以敲击一个神奇的按键 ( C-x #
) 来表示编辑已完成。如果 Notepad++ 对 cygwin 用户有类似的东西,我可以看到它是如何工作的。
另一种选择是使用简单、无聊、简单的记事本作为您的编辑器,并保留 Notepad++ 以供大量使用(我从这篇博客文章中得到了这个想法)
小智 8
我用一个简单的符号链接解决了它。
ln -s /cygdrive/c/Program\ Files\ \(x86\)/Notepad++/notepad++.exe ~/bin/npp
Run Code Online (Sandbox Code Playgroud)
当然 ~/bin 在我的 $PATH 中。
现在要打开一个文件,我只需在 cygwin 提示符下键入“npp filename.txt”。我不必在命令末尾使用 & 。
这也会在当前运行的 Notepad++ 窗口中抛出一个选项卡,而不是打开另一个 - 如果文件已经打开,它不会再次打开它。
归档时间: |
|
查看次数: |
26576 次 |
最近记录: |