bash下如何使用bind[En]

You can determine the character sequence emitted by a key by pressing Ctrl-v at the command line, then pressing the key you're interested in. On my system for F12, I get ^[[24~.
The ^[ represents Esc.
Different types of terminals or terminal emulators can emit different codes for the same key.

At a Bash prompt you can enter a command like this to enable the key macro so you can try it out.

bind '"\e[24~":"foobar"'

Now, when you press F12, you'll get "foobar" on the command line ready for further editing. If you wanted a keystroke to enter a command immediately, you can add a newline:

bind '"\e[24~":"pwd\n"'

Now when you press F12, you'll get the current directory displayed without having to press Enter. What if you've already typed something on the line and you use this which automatically executes? It could get messy. However,
you could clear the line as part of your macro:

bind '"\e[24~":"\C-k \C-upwd\n"'

The space makes sure that the Ctrl-u has something to delete to keep the bell from ringing.

Once you've gotten the macro working the way you want, you can make it persistent by adding it to your ~/inputrc file.
There's no need for the bind command
or the outer set of single quotes:

"\e[24~":"\C-k \C-upwd\n"

Edit:

You can also create a key binding that will execute something without disturbing the current command line.

bind -x '"\eW":"who"'

Then while you're typing a command that requires a username, for example, and you need to know the names of user who are logged in, you can press Alt-Shift-W and the output of who will
be displayed and the prompt will be re-issued with your partial command intact and the cursor in the same position in the line.

Unfortunately, this doesn't work properly for keys such as F12 which output more than two characters. In some cases this can be worked around.

The command (who in
this case) could be any executable - a program, script or function.

时间: 2024-10-01 20:14:38

bash下如何使用bind[En]的相关文章

Windows7下的Git bash下不能用来登录MySQL吗?

问题描述 Windows7下的Git bash下不能用来登录MySQL吗? 好吧,我知道git bash是大家用来做版本控制工具的,我在Windows下安装了之后, 发现它自带的bash要比Windows的命令提示符要美观漂亮多了,还有vim也能使用,然后就有了用它来做Windows命令提示符的工作的想法,而且个人对Linux的命令更熟悉一些,可是我在用它登录MySQL的生活,输入mysql -u root -p就这么一直卡在那里,怎么都不显示,也无法登录. 我是以管理员权限来运行的,就是想问一

shell(bash)下“time” 命令的输出详解_linux shell

前言 相信大家都知道bash下time是一个很有用的命令,它可以为一段脚本或一个程序的执行计时,这通常在粗略比较程序执行效率的时候很方便.但是你会发现,time命令输出的时间文字不能被简单地重定向,例如重定向至一个文本文件,只能显示在屏幕上,这对于非交互计时很不方便. 例如: $ time find . -name "mysql.sh" >1.txt real 0m0.081s user 0m0.060s sys 0m0.020s $ time find . -name &quo

bash下让git支持命令自动完成

载git源码,解压缩,将其中文件 contrib/completion/git-completion.bash 拷到一个符合你习惯的位置,我个人放在 ~/script/git/ 里. 个人习惯在把一些供个人使用的脚本放在家目录下的script目录,这里为git建一个单独的目录,将上述文件放进去. 然后修改~/.bashrc文件,加入一行  代码如下 复制代码 . ~/script/git/git-completion.bash 重新登录,在bash下,你的git就支持自动补完了,输入 git c

Bash 下如何逐行读取一个文件

在 Linux 或类 UNIX 系统下如何使用 KSH 或 BASH shell 逐行读取一个文件? 在 Linux.OSX. *BSD 或者类 Unix 系统下你可以使用 ​​while..do..done 的 bash 循环来逐行读取一个文件. 在 Bash Unix 或者 Linux shell 中逐行读取一个文件的语法 对于 bash.ksh. zsh 和其他的 shells 语法如下 while read -r line; do COMMAND; done < input.file 通

【AMQP】macOS下的AMQP服务器以及PHP扩展搭建

环境说明 macOS版本, macOS Sierra 10.12.3 (16D32) PHP集成环境, XAMPP 7.0.15-0 Apache 2.4.25, MariaDB 10.1.21 PHP 7.0.15 前期准备 修改本地path文件 sudo vi /etc/paths 在文件的最上面添加/Applications/XAMPP/xamppfiles/bin 重启中端 bogon:~ xiaoyu$ php -v PHP 7.0.15 (cli) (built: Jan 20 20

Mac下搭建php开发环境教程_服务器其它

Mac OS X 内置了Apache 和 PHP,这样使用起来非常方便.本文以Mac OS X 10.6.3为例.主要内容包括: 启动Apache运行PHP安装MySQL使用phpMyAdmin配置PHP的MCrypt扩展库设置虚拟主机 启动Apache 有两种方法: 打开"系统设置偏好(System Preferences)" -> "共享(Sharing)" -> "Web共享(Web Sharing)"打开"终端(te

Linux下解决按退格键出现问号的问题

环境:VirtualBox4.1 + RedHat Linux 6 问题:按退格键出现问号 如图所示: 问题分析:误用reset命令所致. 解决: 设定环境变量(在文 字接口里设定,也就是类似于Windows的Dos界面): 在bash下,执行如 下语句:$ stty erase ^? 或者把 stty erase ^?添加到.bash_profile 中. 在csh下,执行如下语句:$ stty erase ^H 或者把 stty erase ^H添加到.cshrc中.

有关jsp在windows下的配置及连接SQLServer数据库的详解

js|server|sqlserver|window|数据|数据库|详解 最近在学习jsp,有关jsp的运行环境的配置问题着实让我费了不少功夫,环境配置好了,连接SQL Sever 2000数据库时又出了不少问题,鉴于此我把自己配置这两方面的详细步骤给大家共享一下,希望刚刚接触jsp的并立志在jsp方面有所成就的同仁少走一些弯路,让我共同进步.有希望与我交流的请加我qq:26544472(在验证信息中请注明jsp交流) (一)有关jsp在windows下的配置: Sun推出的JSP(Java S

在Linux系统下使用Docker以及Weave搭建Nginx反向代理

  Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动发现.它可以让我们更加专注于应用的开发,而不是基础架构.Weave 提供了一个如此棒的环境,仿佛它的所有容器都属于同个网络,不需要端口/映射/连接等的配置.容器中的应用提供的服务在 weave 网络中可以轻易地被外部世界访问,不论你的容器运行在哪里.在这个教程里我们将会使用 weave 快速并且