在OSX中安装TextWrangler时,您还会获得一条edit
命令,该命令可让您从命令行打开任何文本文件。
在Ubuntu中是否可以有类似的功能,以便在终端上键入一些命令以在特定的文本编辑器中打开文件(例如Kate)?
在OSX中安装TextWrangler时,您还会获得一条edit
命令,该命令可让您从命令行打开任何文本文件。
在Ubuntu中是否可以有类似的功能,以便在终端上键入一些命令以在特定的文本编辑器中打开文件(例如Kate)?
Answers:
要使用打开文件kate
,您可以运行以下命令:
kate filename
这可能显示一些消息,例如:
kate(3702)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing "/usr/share/mime/magic"
kate(3702)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing "/home/user/.local/share/mime/magic"
Bus::open: Can not get ibus-daemon's address.
IBusInputContext::createInputContext: no connection to ibus-daemon
要删除这些消息,请将错误输出流重定向到/dev/null
:
kate filename 2>/dev/null
如果要继续使用同一终端,请&
在命令后添加一个:
kate filename 2>/dev/null &
如果要运行edit filename
以打开它,则可以在~/.bashrc
文件中创建bash函数。将下一个代码添加到您的~/.bashrc
文件中:
edit() { kate "$@" 2>/dev/null & }
$@
需要的情况下,你需要通过像行号的附加选项。或者,您可以调整此功能以支持edit filename linenumber
。
$@
(应该是"$@"
),这意味着您的脚本将失败,并且文件名中包含空格。
您可以打开(据我所知)以下任何一种编辑器:
NAME_OF_EDITOR FILENAME
gedit filename
(Ubuntu)
kate filename
(Kubuntu)
bluefish filename
kwrite filename
libreoffice filename
您甚至可以以相同的方式
firefox filename.html
chrome filename.html
banshee filename.ogg
或.mp3 打开网页
您可以在这里看到趋势。
gedit filename &
否则应该保持终端不可用。kate
但是,即使发生同样的事情,即使这样&
也会使终端无法使用,因为它开始向终端吐出调试(或其他信息)信息。&
到底有没有办法避免这种情况?如我edit
从TextWrangler所做的那样?
如果您没有任何图形环境并且在控制台上运行,则可以始终使用:
vim foo.txt
nano bar.txt
pico foo.html
emacs bar.xml
...
等等回落到第一个答案。
我有时会使用经典终端,其中mcedit是我的首选编辑器,并且经常喜欢传递行号来更正程序/脚本。
为了统一称呼他们,edit source.sh 123
我编写了这个脚本,并将其作为“ edit”放置在路径中:
#!/bin/bash
# - edit a file using mcedit or gedit, depending on X11 or console invoking.
# - jump to specified line, if any.
Xedit=/usr/bin/gedit
if [[ $TERM = "linux" ]]; then
if [ $# -eq 1 ]; then
mcedit $1
else if [ $# -eq 2 ]; then
# echo "edit invoked\t/usr/bin/mcedit +$2 $1" >> /tmp/edit.log
/usr/bin/mcedit +$2 $1
else if [ $# -eq 0 ]; then
/usr/bin/mcedit
fi
fi
fi
else if [[ $TERM = "xterm" ]]; then
# scheint nicht zu helfen
# LANGUAGE=C
export LC_ALL=C
if [ $# -eq 1 ]; then
$Xedit $1
else if [ $# -eq 2 ]; then
# echo "edit invoked\t/usr/bin/scite -open:$1 -goto:$2" >> /tmp/edit.log
# $Xedit -open:$1 -goto:$2
$Xedit +$2 $1
else if [ $# -eq 0 ]; then
$Xedit
fi
fi
fi
fi
fi
当我将scite而不是gedit用作图形编辑器时,请使用请参阅旧的调试说明。
某些无法打开的方法是打开多个文件,如下所示:
edit *.html
如果存在多个html文件,则该模式将扩展为多个文件。
有效的调用是:
edit
edit foofile
edit foofile 123
从X或终端。
edit filename
来运行整个命令kate filename 2>/dev/null &
。