Questions tagged «line-editor»

Shell和其他命令行程序中的行编辑器

1
ESC + {:这是什么?在哪里可以进一步了解?
我在bash提示下四处游玩,然后按ESC,再按{,然后,shell在fileglob字符串中显示了所有要完成的文件。例如:如果我键入bash C后跟ESC+{,则shell将显示以下内容:bash CHECK{,1,2{,23{336{,66666},6},3{,6}}}自动完成以C开头的所有可能的文件和目录,显示我制作的所有实验文件和目录。 什么是ESC + {什么?在哪里可以进一步了解? 我在带有bash的CENTOS和Mac OSX上看到了这一点。

6
更改光标形状(或颜色)以在bash中指示vi模式
需要说明的是:在终端中使用vim时,我不问如何更改光标。我希望在Bash的vi模式下在输入模式和命令模式之间切换时光标会改变: set -o vi <CR> type some text <ESC> (the cursor changes shape/color) i (cursor change back) etc... 我发现了一个脚本,该脚本可以在zsh中更改模式更改时光标的颜色,但是我不想仅为此一项功能更改shell。 在Bash命令行上的命令和插入模式之间切换时,是否有办法使光标改变形状,例如gvim(甚至只是颜色)?
30 bash  vi  line-editor 

2
在文本编辑器中打开命令提示符-这叫什么?
在Bash中我最喜欢的技巧之一是在文本编辑器中打开命令提示符时。我通过按来执行此操作(在vi模式下)ESC v。执行此操作后,命令提示符中的所有内容现在都会显示在我选择的$ EDITOR中。然后,我可以像编辑文档一样编辑该命令,并在保存和退出该临时文件中的所有内容时执行该命令。 令我惊讶的是,我的朋友们都没有听说过此提示,因此我一直在寻找可以共享的文档。问题是我还找不到任何东西。另外,与此技巧相关的搜索字词非常常见,因此在谷歌搜索文档时无济于事。 有人知道这种技术叫什么,以便我可以实际查找吗?


9
如何在bash控制台上重复当前键入的参数?
我只是在输入以下内容: mv foo/bar/poit/zoid/narf.txt 突然意识到,该死,我不得不再次输入该参数的大部分内容 mv foo/bar/poit/zoid/narf.txt foo/bar/poit/zoid/troz.txt 即使有Tabcompletion,也相当痛苦。我知道我可以通过鼠标选择文本和Middleclick复制粘贴参数,但这还不够好。我想留在键盘上。 那么有没有办法使用键盘复制粘贴行的当前参数呢?

4
ZSH:向上和向下键的搜索历史?
目前,我的.zshrc中包含以下内容: bindkey '^[[A' up-line-or-search bindkey '^[[B' down-line-or-search 但是,这似乎只在空格字符出现之前与我当前输入的内容匹配。例如,sudo ls /将匹配历史记录中以开头的每一行sudo,而我希望它仅匹配与整个输入匹配的行。(即sudo ls /etc匹配,但不匹配sudo cat /var/log/messages) 为了获得所需的行为,我需要更改什么? 如果相关,这是我的整个.zshrc:https : //gist.github.com/919566

1
使用zsh的行编辑器来包装子流程
是否可以使用zsh的内置行编辑器(zle)将输入提供给子进程?也就是说,我想运行zlewrap mycommand哪里zlewrap是zsh函数,并且mycommand是从stdin读取行的任何程序;zlewrap可以有效地向提供zle的行编辑功能mycommand。这是在其模型上rlwrap执行的,但是使用readline而不是zle进行行编辑。
22 zsh  line-editor 


6
如何以交互方式在bash中输入n个数字的n个重复
我想运行命令 foo --bar=baz <16 zeroes> 如何有效输入16个零*?如果按住不放Alt,1 6 0它将重复下一次操作160次,这不是我想要的。在emacs中,我可以使用Alt-[number]或Ctrl-u 1 6 Ctrl-u 0,但是在bash中,它会Ctrl-u杀死当前正在键入的行,而下一个零只会向该行添加一个0。 如果我做 foo --bar=baz $(printf '0%.0s' {1..16}) 然后history准确显示以上内容,而不显示foo --bar=baz 0000000000000000;即bash的行为不符合我的要求。(编辑:指向正,我想输入一些零而不使用$(...)命令替换) (*)我猜“有效”的技术定义是“使用O(log n)击键”,最好是击键的数量等于16中的位数(对于16的所有值)加上一个常数;这个定义使emacs示例具有效率。

2
重用和修改条目时如何停止bash编辑历史记录?
当您重新使用和编辑上一个命令时,某些bash实例会更改命令历史记录,而其他实例显然不会。我一直在搜索,但是找不到说明如何防止历史记录中的命令在重用和编辑时被修改的内容。 有这样的问题这一个,但似乎说如何应对历史正在编辑。我最近才遇到一个bash实例,该实例在您重用命令时会编辑历史记录-我使用过的所有以前的bash shell(据我所知)都配置为在重用时不更改历史记录并编辑命令。(也许在过去的十五年左右的时间里,我一直没有适当注意我的外壳历史...) 因此,这可能是最好的问题:我可以告诉bash从不修改历史记录吗?

2
是否像在Emacs中一样在Bash中复制并设置标记?
我希望能够复制并粘贴到使用相同的键盘绑定中的Bash命令行的文本Emacs的默认情况下使用(即使用C-space了set-mark,M-w复制文本,C-y,M-y将其粘贴等)。 在GNU Bash的文件说,猛砸附带了一些默认设置了这些键绑定。 例如,C-y默认情况下,yanking()在我的终端上有效。但是,我无法使用set-mark和copy命令,并且默认情况下它们似乎未绑定到任何键。 通常,用户可以定义自己的键绑定的方法是将其添加到中.inputrc。因此,我查看并在文档中找到了以下bash函数,这些函数可以帮助我定义所需的类似于Emacs的行为(即set-markwith C-space和copywith M-w)。 copy-region-as-kill () 将区域中的文本复制到终止缓冲区,以便立即将其取消。默认情况下,此命令是未绑定的。 和 set-mark (C-@) 将标记设置到该点。如果提供了数字参数,则将标记设置到该位置。 如果我理解正确,则上面的意思copy-region-as-kill是默认情况下未绑定到任何键盘序列,而默认情况下set-mark已绑定C-@。 我C-@在终端上尝试过,但是我认为它不能运行,set-mark因为在移动光标时没有看到任何突出显示的文本。无论如何,我都尝试将键盘绑定(M-w和C-)添加到函数中copy-region-as-kill以及set-mark上面的函数 中.inputrc,然后使用进行重新加载C-x C-r,但这是行不通的。我知道我的其他条目还在.inputrc工作,因为我在其中定义了其他用户定义的键绑定。 我做错了什么吗?我有什么想念的吗?


3
bash中的Ctrl-Backspace和Ctrl-Delete
戴上Debian 8.3 stty werase '^H' 或在Arch Linux 2/2016上 stty werase '^?' 在.bashrc(例如)使得Ctrl- Backspace删除终端的最后一个字。不过这不是相同的行为在现代GUI应用程序(如火狐):删除最后一个空白 -分隔字,而不是最后一个字由空格分隔或字符,如. : , ; " ' & / ( )。 是否有可能使Ctrl- Backspace的行为在终端类似现代的GUI应用程序?另外,有什么方法可以Ctrl- Delete删除光标前的单词吗?

2
我可以使用类似vi的hjkl键浏览zsh的制表符完成菜单吗?
我使用zsh的基于菜单的制表符完成。我按Tab一下,然后出现可能的完成清单。如果Tab再次按,则可以使用箭头键浏览此列表。然而,是否有可能与浏览他们vi般H,J,K,L钥匙呢? 我在命令行输入中使用emacs模式,bindkey -e在中~/.zshrc。我还将zim与zsh一起使用。如果相关,则指定制表符补全系统的命令在此处。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.