Tyl*_*den 3 command-line shell bash vim
在配置和调整基于 Unix 的系统时,我经常使用很多难以记住的单行命令。例如,要确定正在运行的 ntp(时间服务器)版本,请发出以下命令:
ntpq -c "rv 0 version"
Run Code Online (Sandbox Code Playgroud)
这是我永远不会记住的那种东西。是否有某种方式或方法来存储所有这些单行代码,以便在需要时可以轻松查看它们并将它们粘贴到命令行(顺便说一句,我使用 vim,而不是 emacs,因此以 emacs 为中心的解决方案不会真正帮助我)。我在想可能有一种方法可以从 shell 的缓冲区中执行当前文本行,但找不到任何这样的命令。
我的一个想法是将命令放在一个文本文件中,然后在 vimrc 中创建这一行:
nnoremap <F10> :.w !bash<CR>
Run Code Online (Sandbox Code Playgroud)
现在,假设我的文件中有这一行:
ntpq -c "rv 0 version" # show current version of NTP which is running
Run Code Online (Sandbox Code Playgroud)
然后,我将光标放在这一行上并按 F10 并且它起作用了(请注意,由于命令正在发送到 bash,因此您使用 bash 注释 (#),而不是 vim 注释)。这似乎是朝着正确方向迈出的一步。有什么更好的想法吗?
您是否尝试过使用别名?
例子
为新命令创建别名:
alias ntpversion='ntpq -c "rv 0 version"'
Run Code Online (Sandbox Code Playgroud)
运行命令:
ntpversion
Run Code Online (Sandbox Code Playgroud)
运行 ntpversion,将其设置为别名后,将为您的单行程序提供输出。
http://www.linuxhowtos.org/Tips%20and%20Tricks/command_aliases.htm