有没有办法在Windows上的Ubuntu上用Bash中的Notepad ++打开文件?

时间:2016-10-25 04:49:02

标签: windows bash ubuntu notepad++ command-line-interface

我在Windows 10上,但我在Windows(WSL)上使用Bash在Ubuntu上熟悉Linux命令行。

我正在尝试充分利用其功能,并且认为能够在Notepad ++中从CLI打开index.html是很棒的。这可能吗?如果是这样,我将如何进行设置?

我对命令行很新,更不用说Linux命令了。

4 个答案:

答案 0 :(得分:3)

  

绝对可以在WSL中使用Notepad ++。实际上,您可以像在普通Windows环境中一样使用它。

您需要创建一个bash 别名,以便更轻松地使用以下命令:

<path_to_textEditor> <path_to_textfile>

要为Notepad ++创建别名,请在WSL bash中执行以下操作:

  1. 打开.bashrc启动脚本(启动bash时运行):

    vim ~/.bashrc

  2. 将别名定义添加到脚本中:

    alias np='<path_to_textEditor>'

    对于Notepad ++,它将是:

    alias np='/mnt/c/Program\ Files\ \(x86\)/Notepad++/notepad++.exe'

    如果未在默认目录中安装Notepad ++,则可能必须调整路径。

    确保使用escape chatacter \(反斜杠)转义任何特殊字符,例如空格。

  3. 现在,像平常一样使用它:

    要打开Notepad ++,请执行np

    要在Notepad ++中打开特定文件,请执行np <text_file>

      

    根据用户@ericpeters的建议,您可能希望将几个有用的Notepad++ startup options添加到别名中。

    这些启动选项附加到别名字符串的末尾,并以空格分隔。

    alias np='<path_to_textEditor> <startup_option_1> <startup_option_2> ...'

    以下是一些例子:

    • -multiInst:打开一个与当前打开的Notepad ++会话分开的新Notepad ++实例(如果存在)。

    • -nosession:请勿加载上一个会话,也不要将会话保存到session.xml

    • -notabbar:关闭标签界面。

    以下是启动选项的示例:

    alias np='/mnt/c/Program\ Files\ \(x86\)/Notepad++/notepad++.exe -multiInst -notabbar -nosession'
    

    就个人而言,我有两个单独的别名,一个没有启动选项,一个带有上面的三个启动选项。这允许我选择是否要:

    • 当我不想使用VIM时快速编辑单个文件(并在退出时返回CLI)。用于编写git commit消息。
    • 将文件打开到我的“始终打开”标准Notepad ++会话(带标签)。

答案 1 :(得分:1)

很抱歉,在我之前的回答中误解了这个问题。 我找不到Windows bash支持运行Windows应用程序的提示 http://www.howtogeek.com/265900/everything-you-can-do-with-windows-10s-new-bash-shell/

许多Ubuntu Notepad ++替代品中没有一个可以解决这个问题吗? https://itsfoss.com/notepad-alternatives-for-linux/

答案 2 :(得分:0)

我通常将所有工作文件放在Windows目录中

/mnt/d/ubuntu/ 

然后在WSL Ubuntu Shell中,我创建一个指向目录的符号链接

ln -s /mnt/d/ubuntu ~/win

无论我在WSL中使用什么文件,我都将它们放置在此目录中,除了Linux特定的文件(通常不需要在Windows应用程序中打开这些文件)。

现在,当您要使用Windows应用程序来处理文件时,只需浏览该应用程序即可

D:/ubuntu/.../your/files

答案 3 :(得分:0)

对于WSL2,我只需将Notepad ++目录添加到PATH并放置该脚本:

#!/bin/bash

params=()
args=($@)
argslength=${#args[@]}
for (( i=0; i<${argslength}; i++ ));
do
  param=${args[$i]}
  if [[ ${param:0:1} == "/" ]]; then
    params[$i]=$(wslpath -w $param)
  else
    params[$i]=$param
  fi
done

notepad++.exe ${params[@]}

它将绝对路径(以一种简单但简单的方式)转换为Windows格式,以便Notepad ++可以理解它们。

我通常只将脚本命名为npp,然后我的git ecg再次起作用。

git config --global alias.ecg "config --global -e"
git config --global core.editor "npp -multiInst -notabbar -nosession -noPlugin"