首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

让Ctrl-p和Ctrl-n搜索按键入字符过滤的shell历史记录

在shell中,Ctrl-p和Ctrl-n是用来在历史记录中上下移动的快捷键。当我们按下Ctrl-p时,会向上移动到上一个历史记录,而按下Ctrl-n则会向下移动到下一个历史记录。

在默认情况下,Ctrl-p和Ctrl-n搜索按键并不会进行字符过滤,而是按照输入的字符进行前缀匹配。也就是说,当我们按下Ctrl-p或Ctrl-n后,shell会自动将我们当前输入的字符作为前缀,然后在历史记录中查找以该前缀开头的命令。

这种行为可以帮助我们快速找到之前执行过的命令,特别是当我们需要重复执行某个命令时。通过按下Ctrl-p或Ctrl-n,我们可以快速浏览历史记录,并选择需要执行的命令。

然而,如果我们希望按照输入的字符进行过滤搜索,而不是仅仅进行前缀匹配,我们可以通过配置shell来实现。具体来说,我们可以使用bind命令来重新绑定Ctrl-p和Ctrl-n的行为。

以下是一个示例,展示如何将Ctrl-p和Ctrl-n搜索按键修改为按照输入字符进行过滤搜索的方式:

  1. 打开终端,并输入以下命令以编辑shell配置文件(例如bash的配置文件为~/.bashrc):
代码语言:txt
复制
$ vi ~/.bashrc
  1. 在文件中找到类似下面的行:
代码语言:txt
复制
# enable Ctrl-p and Ctrl-n for history navigation
bind '"\C-p": history-search-backward'
bind '"\C-n": history-search-forward'
  1. 将上述行修改为以下内容:
代码语言:txt
复制
# enable Ctrl-p and Ctrl-n for history navigation with character filtering
bind '"\C-p": history-search-backward'
bind '"\C-n": history-search-forward'
bind '"\C-r": history-search-backward'
  1. 保存文件并退出编辑器。
  2. 重新加载shell配置文件,使修改生效:
代码语言:txt
复制
$ source ~/.bashrc

现在,当你按下Ctrl-p或Ctrl-n时,shell会根据你输入的字符进行过滤搜索,而不仅仅是前缀匹配。这样,你就可以更精确地查找并执行历史记录中的命令了。

需要注意的是,以上示例是针对bash shell的配置方式。如果你使用的是其他类型的shell,可能需要相应地修改配置文件和绑定命令的语法。

关于shell历史记录和快捷键的更多信息,你可以参考腾讯云的产品文档中关于Linux Shell的介绍。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python:ipython简介及与原生python shell比价

1. ipython相比于原生python有什么优势 (1) python shell不能在退出保存历史;ipython历史记录自动保存:保存在history.sqlite文件下:可用“”、“”、“...显示对象签名、文档字符串、代码位置,通过“??”显示源代码; (4) python shell不能直接执行shell命令,需要借助sys;ipython通过“!”调用系统命令,如“!...这会显示所有以sort结尾函数 三、ipython快捷键 下面介绍一下第一个第二个快捷键,比如有如下代码: Ctrl-P 或上箭头键 后向搜索命令历史中以当前输入文本开头命令 Ctrl-N...或下箭头键 前向搜索命令历史中以当前输入文本开头命令 Ctrl-R 行读取反向历史搜索(部分匹配) Ctrl-Shift-v 从剪贴板粘贴文本 Ctrl-C 中止当前正在执行代码 Ctrl-A...将光标移动到行首 Ctrl-E 将光标移动到行尾 Ctrl-K 删除从光标开始至行尾文本 Ctrl-U 清除当前行所有文本译注12 Ctrl-F 将光标向前移动一个字符 Ctrl-b 将光标向后移动一个字符

14310
  • 08-高级键盘技巧

    ② 支持递增地搜索 ​ bash 也支持以逆向递增方式搜索历史记录(也就是说,当搜索历史记录时,随着输入字符增加,bash 会相应地改变搜索范围)。...此时我们可以 Enter 键执行搜索结果,也可按下 Ctrl-J ,把搜索结果复制到当前命令行。 shell 将实时响应,命令行将被加载,准备运行。...(3)历史记录命令 一些用来手动操作历史记录组合键。 组合键 作用 Ctrl-P 移动到前一条历史记录(相当于向上箭头键)。 Ctrl-N 移动到后一条历史记录(相当于向下箭头键)。...下这个组合键,接着输入待搜索字符串,再按下 Enter 键后,搜索才真正开始执行。 Alt-N 向前非递增地搜索。 Ctrl-O 执行历史记录列表中的当前项,执行完跳到下一项。...若要把历史记录一系列命令重新执行一遍,使用该组合键将很方便。 2.历史记录扩展 ​ shell 提供了一种专门用来扩展历史记录方式——使用 ! 字符

    1K40

    zshoh-my-zsh常用配置命令

    查看当前环境下shell echo $SHELL 查看系统自带shell cat /etc/shells 将zsh设置为默认shell chsh -s /bin/zsh 在安装了oh-my-zsh以后...一旦在shell敲入命令并执行后,shell就会存储你所键入命令历史计入,存放在~/.zsh_history文件中。...可以通过方向键⬆️或⬇️来查看之前执行命令 可以用 r 来执行上一条命令 可以用 ctrl + r 来搜索键入命令历史记录 命令别名 可以简化命令输入,如创建一个别名 ip 来查看当前ip 编辑~...中键入alias可查看所有的别名命令 路径快速补全 在知道路径情况下,如/usr/local/bin,可以在shell键入 cd /u/l/b之后tab进行快速补全调转到指定目录 列表快速补全 在...shell键入字符以后连两次tab会列出所有的补全列表并直接开始选择,补全项可以用 ctrl + n/p/f/b 来进行上下左右切换 历史过滤shell上下方向键可以查找键入历史命令,zsh

    1.6K10

    python学习-ipythonpye

    一、ipython ipython是一个python交互式shell,比默认python shell好用得多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用功能函数。...标准输入输出,也就是我们在IDLE中或者Python shell中能用,在IPython中都能够使用,唯一不同之处使ipython会使用In [x]Out [x]表示输入输出,并表示出相应序号...TAB自动补全 在shell中输入表达式时,只要按下Tab键,当前命名空间中任何与输入字符串相匹配变量(对象或者函数等)就会被找出来: ? 内省 在变量前面或者后面加上一个问号?...在IPython中使用系统shell 我们可以在IPython中直接使用系统shell,并获取读取结果作为一个Python字符串列表。为了实现这种功能,我们需要使用感叹号!作为shell命令前缀。...快捷键 Ctrl-P    或上箭头键 后向搜索命令历史中以当前输入文本开头命令 Ctrl-N   或下箭头键 前向搜索命令历史中以当前输入文本开头命令 Ctrl-R   行读取反向历史搜索

    1K10

    android studio快捷键集合

    12 、在使用 CodeCompletion 时,可以用逗点( . )字符,逗号(,)分号(;),空格其它字符输入弹出列表里的当前高亮部分。选择名字会随着输入字符自动输入到编辑器里。...18 、 Ctrl-N ( Go to | Class… )再键入名字可以快速地在编辑器里打开任何一个类。从显示出来下拉列表里选择类。...在“ Search for: ”提示工具里输入字符,使用箭头键朝前朝后搜索 Escape 退出。 24 、 Ctrl-J 组合键来执行一些你记不起来 Live Template 缩写。...36 、如果光标置于一个方法调用括号间, Ctrl-P 会显示一个可用参数列表。...试一下,把编辑器脱字符置于任何一个变量名字上然后 Shift-F6 ( Refactor | Rename… )。在对话框里键入要显示地新名字再按 Enter 。

    61520

    IntelliJ Idea快捷键

    12 、在使用 CodeCompletion 时,可以用逗点( . )字符,逗号(,)分号(;),空格其它字符输入弹出列表里的当前高亮部分。选择名字会随着输入字符自动输入到编辑器里。...18 、 Ctrl-N ( Go to | Class… )再键入名字可以快速地在编辑器里打开任何一个类。从显示出来下拉列表里选择类。...在“ Search for: ”提示工具里输入字符,使用箭头键朝前朝后搜索 Escape 退出。 24 、 Ctrl-J 组合键来执行一些你记不起来 Live Template 缩写。...36 、如果光标置于一个方法调用括号间, Ctrl-P 会显示一个可用参数列表。...试一下,把编辑器脱字符置于任何一个变量名字上然后 Shift-F6 ( Refactor | Rename… )。在对话框里键入要显示地新名字再按 Enter 。

    1.4K60

    Android Studio快捷键

    12 、在使用 CodeCompletion 时,可以用逗点( . )字符,逗号(,)分号(;),空格其它字符输入弹出列表里的当前高亮部分。选择名字会随着输入字符自动输入到编辑器里。...18 、 Ctrl-N ( Go to | Class… )再键入名字可以快速地在编辑器里打开任何一个类。从显示出来下拉列表里选择类。...在“ Search for: ”提示工具里输入字符,使用箭头键朝前朝后搜索 Escape 退出。 24 、 Ctrl-J 组合键来执行一些你记不起来 Live Template 缩写。...36 、如果光标置于一个方法调用括号间, Ctrl-P 会显示一个可用参数列表。...试一下,把编辑器脱字符置于任何一个变量名字上然后 Shift-F6 ( Refactor | Rename… )。在对话框里键入要显示地新名字再按 Enter 。

    1K70

    Shell && Vim快捷键

    刚买到了自己一直想买HHKB pro 2 type S,不得不说手感什么的确实没让我失望,重点是Ctrl位置很适合类unix环境啊,不会快捷键都不好意思敲这个键盘了 所以记录自己平时常用快捷键,可能会不定时更新...Shell Ctrl-a 移动光标到行首 Ctrl-e 移动光标到行尾 Ctrl-f 光标前移一个字符;右箭头作用一样 Ctrl-b 光标后移一个字符...;左箭头作用一样 Ctrl-n 下一个历史,命令 Ctrl-p 上一个历史命令 Ctrl-j 回车 Ctrl-h 退格 Ctrl-l 清空屏幕...clear 命令完成同样工作 Ctrl-d 删除光标位置字符 Ctrl-t 光标位置字符光标前面的字符互换位置 Alt-l 把从光标位置到字尾字符转换成小写字母...Alt-u 把从光标位置到字尾字符转换成大写字母 Ctrl-k 剪切从光标位置到行尾文本 Ctrl-u 剪切从光标位置到行首文本 Ctrl-y 把剪切环中文本粘贴到光标位置

    75850

    常用命令行快捷键

    常用快捷键 移动光标 快捷键 作用 Ctrl-a 移动光标到行首 Ctrl-e 移动光标到行尾 Ctrl-f 光标前移一个字符右箭头作用一样 Ctrl-b 光标后移一个字符左箭头作用一样 Alt-f...clear 命令完成同样工作 修改文本 快捷键 作用 Ctrl-d 删除光标位置字符 Ctrl-t 光标位置字符光标前面的字符互换位置 Alt-t 光标位置其前面的字互换位置 Alt-l...把从光标位置到字尾字符转换成小写字母 Alt-u 把从光标位置到字尾字符转换成大写字母 剪切粘贴文本 快捷键 作用 Ctrl-k 剪切从光标位置到行尾文本 Ctrl-u 剪切从光标位置到行首文本...当你想要使用多个可能匹配项时,这个很有帮助 历史命令 快捷键 作用 Ctrl-p 移动到上一个历史条目。类似于上箭头按键 Ctrl-n 移动到下一个历史条目。...输入要查找字符串,然后下 Enter,执行搜索 Alt-n 向前搜索,非递增顺序 Ctrl-o 执行历史列表中的当前项,并移到下一个。如果你想要执行历史列表中一系列命令,这很方便

    95650

    Android Studio 快捷键

    12 、在使用 CodeCompletion 时,可以用逗点( . )字符,逗号(,)分号(;),空格其它字符输入弹出列表里的当前高亮部分。选择名字会随着输入字符自动输入到编辑器里。 ...18 、 Ctrl-N ( Go to | Class… )再键入名字可以快速地在编辑器里打开任何一个类。从显示出来下拉列表里选择类。 ...在“ Search for: ”提示工具里输入字符,使用箭头键朝前朝后搜索 Escape 退出。 24 、 Ctrl-J 组合键来执行一些你记不起来 Live Template 缩写。...36 、如果光标置于一个方法调用括号间, Ctrl-P 会显示一个可用参数列表。...试一下,把编辑器脱字符置于任何一个变量名字上然后 Shift-F6 ( Refactor | Rename… )。在对话框里键入要显示地新名字再按 Enter 。

    97560

    iintellij IDEA运行环境使用教程

    12 、在使用 CodeCompletion 时,可以用逗点( . )字符,逗号(,)分号(;),空格其它字符输入弹出列表里的当前高亮部分。选择名字会随着输入字符自动输入到编辑器里。...18 、 Ctrl-N ( Go to | Class… )再键入名字可以快速地在编辑器里打开任何一个类。从显示出来下拉列表里选择类。...在“ Search for: ”提示工具里输入字符,使用箭头键朝前朝后搜索 Escape 退出。 24 、 Ctrl-J 组合键来执行一些你记不起来 Live Template 缩写。...36 、如果光标置于一个方法调用括号间, Ctrl-P 会显示一个可用参数列表。...试一下,把编辑器脱字符置于任何一个变量名字上然后 Shift-F6 ( Refactor | Rename… )。在对话框里键入要显示地新名字再按 Enter 。

    1.1K10

    Intellij Idea 2018常用快捷键总结

    12 、在使用 CodeCompletion 时,可以用逗点( . )字符,逗号(,)分号(;),空格其它字符输入弹出列表里的当前高亮部分。选择名字会随着输入字符自动输入到编辑器里。 ...18 、 Ctrl-N ( Go to | Class… )再键入名字可以快速地在编辑器里打开任何一个类。从显示出来下拉列表里选择类。 ...在“ Search for: ”提示工具里输入字符,使用箭头键朝前朝后搜索 Escape 退出。 24 、 Ctrl-J 组合键来执行一些你记不起来 Live Template 缩写。...36 、如果光标置于一个方法调用括号间, Ctrl-P 会显示一个可用参数列表。...试一下,把编辑器脱字符置于任何一个变量名字上然后 Shift-F6 ( Refactor | Rename… )。在对话框里键入要显示地新名字再按 Enter 。

    2.4K30

    idea常用快捷键

    12 、在使用 CodeCompletion 时,可以用逗点( . )字符,逗号(,)分号(;),空格其它字符输入弹出列表里的当前高亮部分。选择名字会随着输入字符自动输入到编辑器里。...18 、 Ctrl-N ( Go to | Class… )再键入名字可以快速地在编辑器里打开任何一个类。从显示出来下拉列表里选择类。...在“ Search for: ”提示工具里输入字符,使用箭头键朝前朝后搜索 Escape 退出。 24 、 Ctrl-J 组合键来执行一些你记不起来 Live Template 缩写。...36 、如果光标置于一个方法调用括号间, Ctrl-P 会显示一个可用参数列表。...试一下,把编辑器脱字符置于任何一个变量名字上然后 Shift-F6 ( Refactor | Rename… )。在对话框里键入要显示地新名字再按 Enter 。

    69530

    第九章:键盘高级操作技巧

    按键 行动 Ctrl-d 删除光标位置字符。 Ctrl-t 光标位置字符光标前面的字符互换位置。 Alt-t 光标位置其前面的字互换位置。...这意味着随着字符输入,我们可以告诉 bash 去搜索历史列表,每一个附加字符都进一步提炼我们搜索。启动递增搜索,输入 Ctrl-r,其后输入你要寻找文本。...按键 行为 Ctrl-p 移动到上一个历史条目。类似于上箭头按键。 Ctrl-n 移动到下一个历史条目。类似于下箭头按键。 Alt-< 移动到历史列表开头。...Ctrl-r 反向递增搜索。从当前命令行开始,向上递增搜索。 Alt-p 反向搜索,不是递增顺序。输入要查找字符串,然后下 Enter,执行搜索。 Alt-n 向前搜索,非递增顺序。...重复最后一次执行命令。可能下上箭头按键 enter 键更容易些。 !number 重复历史列表中第 number 行命令。 !string 重复最近历史列表中,以这个字符串开头命令。 !?

    24910

    vim编辑器使用教程

    在该模式下,可以进行操作有,显示行号、搜索、替换、保存、退出。...p P 粘贴会出现换行,主要原因是复制整行时,会把行末换行符也复制下来 n-yy 复制光标所在位置 n 行,包括光标所在行 3、撤销 命令模式下 u 撤销操作 Ctrl-r 反撤销 4、...其他括号也可以这样 5、查找替换 1)查找 /+findname 命令模式下查找 回车键启动查找后, n,会自动找下一个, N 跳到上一个查找光标所在单词 光标在目标单词上时, *或者#查找下一个...后面的不会变 :%s /待替换词/替换词/g 真正意义上全局替换 区域替换 :24,35s /待替换词/替换词/g 替换 24-35 行之间目标词 末行模式下历史命令 Ctrl-p 上一条命令...Ctrl-n 下一条命令 6、自动缩进 gg=G (命令模式) 在这之前要进行 vimrc 修改,不然自动缩进是 8 个空格 ubuntu vimrc 位置在/etc/vim/vimrc 在文件末尾添加三行

    6.6K40

    vim技巧:我 .vimrc 配置文件,详解每一个配置项作用

    去掉有关vi一致性模式,避免操作习惯上局限. set nocompatible " Backspace键可以往前删除字符. " Debian系统自带vim版本会加载一个debian.vim文件,.... longest表示只自动补全最大匹配部分, " 剩余部分通过CTRL-P/CTRL-N来选择匹配项进行补全. menu表示 " 弹出可补全内容列表.如果有多个匹配,longest选项不会自动选中..." 并完整补全,要多一次CTRL-P,比较麻烦,不做设置,保持默认设置, " vim默认没有设置longest. "" set completeopt=longest,menu " 自动缩进.这个导致从外面拷贝多行以空格开头内容时...highlight MyTabSpace ctermfg=darkgrey " 指定tab字符空格颜色组为MyTabSpace,不同字符串 " 之间用|隔开,要使用\|转义. match MyTabSpace...下面配置cscope查找 " 文件命令快捷键为F6,由于需要手动输入文件名,不要加 nnoremap :cs find f " 如果要去掉高亮显示搜索内容,需要再次搜索一些不存在字符

    14K21

    IPython使用学习笔记

    一.Ipython基础 启动:开始菜单-输入cmd-回车-输入ipython 初尝试 二.Tab键自动完成 在shell中输入表达式时,只要按下Tab键,当前命令控件中任何与输入字符串相匹配变量(对象...Ctrl-P    或上箭头键 后向搜索命令历史中以当前输入文本开头命令 Ctrl-N   或下箭头键 前向搜索命令历史中以当前输入文本开头命令 Ctrl-R   行读取反向历史搜索(部分匹配...ctrl+r用于实现部分增量搜索下ctrl+r并输入你想搜索行中几个字符下ctrl+r将会循环搜索历史命令中每一条与输入相符行。...十七.shell命令别名 在ipython中,以感叹号(!)...输入u(up)d(down)即可在栈跟踪个级别之间切换 执行%Pdb命令可以ipython在出现异常之后自动调用调试器。

    2.2K50

    谁动了我Linux?原来history这么强大!

    -6 (三)搜索历史命令 有时候,需要重复执行某字符串开头最后一个命令,同样可以通过 !...来执行包含字符命令 $ !?sina (四)交互式搜索历史命令 在 Linux 搜索历史命令,还可以通过交互式搜索方式,简直高效直接。...在命令行输入 Ctrl+R 后,进入交互界面,键入需要搜索关键字,如果匹配到多条命令,可以多次键入 Ctrl+R 来切换上一条匹配命令。...history 命令提供了很方便管理功能,合理去配置管理历史记录,可以 Linux 系统更加健壮安全。...string 等 交互式历史命令搜索,请使用 Ctrl+R 快捷键 合适使用几个相关环境变量, Linux 系统更安全: HISTSIZE:控制缓冲区历史记录最大个数 HISTFILESIZE

    1.7K30

    Atom飞行手册翻译: 2.2 在Atom中移动

    在Atom中移动 用鼠标方向键,简单地在Atom中移来移去非常容易,然而Atom有一些快捷键,可以你把手一直放到键盘上,更快速地浏览文档。 首先,Atom自带许多Emacs快捷键来浏览文档。...要想上移或者下移一个字符,你可以ctrl-Pctrl-N。左移或右移一个字符ctrl-Bctrl-F。这样等同于下方向键,但是一些人不喜欢把他们手移到方向键位置。...除了单个字符移动,还有一些其他用于移动快捷键。 alt-B, alt-left 移动到单词开头。 alt-F, alt-right 移动到单词末尾。...你也可以使用ctrl-G,通过指定一行(列)来直接移动光标。这会弹出一个对话框问你想要跳到哪一行。你同样可以使用row:column语法来跳到那一行某个字符。...如果你下shift-F2则会跳到上一个。 通过下ctrl-F2,你可以看到当前项目中所有书签列表,并可以快速筛选它们,跳到任何一个书签位置。

    1K20
    领券