我想在sublime2中打开终端命令的输出。
例如,当我执行 时$ list
,它会在终端中列出所有文件/文件夹。我希望在运行此命令时创建一个临时文本文件并在 sublime2 编辑器中打开输出。我无意保存它。我只想在 sublime2 中打开输出。
我已经看到您可以通过管道输出textmate
来打开。Mac
$ls | mate
(我不确定语法)
答案1
您可以使用一个非常简单的脚本来执行此操作。
脚本如下:
#! /bin/bash
"$@" > $$.txt
sublime-text $$.txt
rm $$.txt
将其另存为sublime.sh
(您可以使用任何其他名称)并通过运行使其可执行:
chmod +x sublime.sh
使用方法:
./sublime.sh <command>
例子:
./sublime.sh ls -l
解释:
- 第 1 行是舍邦,它仅指定解释器。
- 第 3 行运行您传递的命令并将其保存在名为的文件中
$$.txt
。$$
返回您正在使用的终端的 PID(可以随意使用任何其他文件名)。 - 第 4 行打开文件
sublime-text
- 第 5 行删除该文件,因为您不想永久保存该文件。
更新:您还可以将其放入您的~/.bashrc
文件中以便轻松访问。
- 打开一个终端。
- 转到主文件夹。
光盘
- 打开
.bashrc
文件。
编辑 .bashrc
- 将以下内容复制到文件末尾。
函数 sublime() { “$@” > ~/$$.txt sublime-text ~/$$.txt rm ~/$$.txt }
- 运行以下命令进行刷新:
..bashrc
- 完成!现在使用它:
sublime ls -l
答案2
我过去曾使用过这种方法来实现你想要的(我认为)
ls -lrt > tmp.txt && gedit tmp.txt
显然,您需要更改对 gedit 的引用,以便它使用您喜欢的编辑器,在本例中为 sublime。
我的问题是,你想用这个实现什么?听起来你正在尝试记录终端会话的输出。如果是这种情况,您可以使用“script”命令
user@machine $ script ~/temp/terminal.txt
只需输入 exit 即可退出录音
user@machine ~/temp $ exit
exit
Script done, file is /home/user/temp/terminal.txt
这现在意味着terminal.txt包含该会话的完整日志希望这会有所帮助