我使用的IDE是崇高的文字3.
如果我想通过 Sublime Text 终端打开文件,我必须输入:
subl <file>.c
我想编辑 .bashrc 以便任何.c
文件自动在 Sublime Text 中打开。我该怎么做呢?
例子:
> test.c
test.c
现在在 Sublime Text 中打开。
答案1
这在正常情况下是行不通的。我能想到的唯一方法是将每个命令记录到一个文件中(例如,使用script
修改后的 PS1 来重写任何命令中的 bash),然后在每个新行处解析此日志文件(例如进一步修改 PS1)以获取某些以结尾的正则表达式.c 启动 sublime。
听起来不值得花时间,也许一些alias s="subl "
内容.bashrc
会让你更开心,结合制表符完成,对你来说应该更容易一些。
答案2
既然你的目标是(可能)为了减少输入,您可以为 sublime 定义一个别名或一个简单的 shell 脚本,
alias s='subl'
#or
alias sb='subl'
s
或者你可以想像一下,使用名为“ ”或“ ”的 shell 脚本sb
(保存在你~/bin/
的 PATH 中),
#!/bin/bash
subl $*
上述任一结果都会缩短命令行,
> s myfile.c
比您想要的长(2 个字符),
> myfile.c
或者您可以变得非常奇特,插入 shbang ( #!
) 行作为所有.c
文件的第一行,使文件可执行,并调用上面的编辑脚本。这意味着在编译之前重写您的 makefile 以首先预处理掉 shbang 行。
将此另存为“ myfile.cs
”
#!~/bin/subl myfile.cs
#include <stdio.h>
int main() { printf("hello, world\n"); }
为了演示这是如何工作的,请保存以下文件“ stuff.cs
”
#!/usr/bin/vi stuff.sh
//this is a file
//that you can edit with sublime
int main() { printf("hello, world\n"); }
然后运行它,
./fubar.cs
后一种解决方案完全符合您的要求,但需要更多的输入和预处理开销。
答案3
您可能不应该这样做,但是人们可以将该command_not_found_handle
功能整合到服务中,这反过来可能会破坏其他东西,或者需要与command_not_found_handle
您可能想要的任何其他功能相结合。
-bash-4.2$ touch foo.c
-bash-4.2$ function command_not_found_handle() { [[ -f "$1" ]] && subl "$1"; }
-bash-4.2$ foo.c
...
-bash-4.2$ bar.c
-bash-4.2$
(这是一个坏主意的原因之一是您正在更改命令行语法的command [args..]
到command-or-plainfilethatisrunsomehow [args..]
。)
答案4
作为变体,您可以使用 readline 绑定,如下所示:
bind '"\e\C-m":"\C-asubl \C-m"'
然后Alt+Enter或Ctrl++Alt组合M将在 Sublime 编辑器中打开任何文件。也就是说,当您想在 Sublime 中打开文件时,您可以键入文件名(test.c
例如)并按Alt+ Enter。按键组合可以根据需要进行更改。
缺点 - bash 自动完成功能不适用于行第一个单词中的文件名。