欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

终端光标 快捷键分享 有大用 有大大用 有大大大用

光标移动快捷键

Ctrl + a 移动到行首

Ctrl + e 移动到行尾

Ctrl + f 右移1个字符

Ctrl + b 左移一个字符

Ctrl + t 交换光标前两个字符

Ctrl + <- 左移一个单词  (mac的话 Alt + 左箭头) (linux是  Alt+B)

Ctrl + -> 右移一个单词  (mac的话 Alt + 右箭头) (linux是  Alt+F)

Ctrl + u 删除到行首(还有剪切功能)

Ctrl + k 删除到行尾(还有剪切功能)

Ctrl + w 删除光标前面的单词的字符(删除前面所连着的单词)

Alt + d 删除后一个单词

Ctrl + y 粘贴或者恢复上次的删除

Ctrl + r 搜索History中的命令

Ctrl + z : 后台运行,fg恢复

Ctrl – xx :在命令行尾和光标之间移动


————————————————

来自  https://blog.csdn.net/qq_28112995/article/details/106167254


Linux命令快捷键

涉及在linux命令行下进行快速移动光标、命令编辑、编辑后执行历史命令、Bang(!)命令、控制命令等。让basher更有效率。

常用

Ctrl + 左右键:在单词之间跳转

Ctrl + A:跳到本行的行首

Ctrl + E:跳到页尾

Ctrl + U:删除当前光标前面的所有文字(还有剪切功能)

Ctrl + K:删除当前光标后面的所有文字(还有剪切功能)

Ctrl + L:进行清屏操作

Ctrl + Y:粘贴Ctrl + U或Ctrl + K剪切的内容

Ctrl + W和Alt + D:对于当前的单词进行删除操作,W删除光标前面的单词的字符,D则删除后面的字符 

Alt + Backsapce:删除当前光标后面的单词

说明

Ctrl + K: 先按住 Ctrl 键,然后再按 K 键;

Alt + K: 先按住 Alt 键,然后再按 K 键;

Esc + K:先单击 Esc 键,然后再按 K 键。

移动光标

Ctrl + A:移到行首

Ctrl + E:移到行尾

Ctrl + B:往回(左)移动一个字符(相当于左键)

Ctrl + F:往后(右)移动一个字符(相当于右键)

Ctrl + XX:(两个X)在命令行尾和光标之间移动

Alt + B:往回(左)移动一个单词

Alt + F:往后(右)移动一个单词

Esc + B:往回(左)移动一个单词

Esc + F:往后(右)移动一个单词

Esc + T:交换光标位置前的两个单词

编辑命令

Ctrl + H :删除光标左方位置的字符

Ctrl + D:删除光标右方位置的字符(注意:当前命令行没有任何字符时,会注销系统或结束终端)

Ctrl + W :由光标位置开始,往左删除单词。往行首删

Alt + D :由光标位置开始,往右删除单词。往行尾删

Esc + D :由光标位置开始,删除单词,直到该单词结束。

Ctrl + K :由光标所在位置开始,删除右方所有的字符,直到该行结束。

Ctrl + U :由光标所在位置开始,删除左方所有的字符,直到该行开始。

Ctrl + Y :粘贴之前删除的内容到光标后。

Ctrl + T :交换光标处和之前两个字符的位置。

Alt + . :使用上一条命令的最后一个参数。

Ctrl + _ :回复之前的状态。撤销操作。

Ctrl + A + K ,或 Ctrl + E + U 或 Ctrl + K + U 组合可删除整行。

查找历史命令

Ctrl + P:显示当前命令的上一条历史命令(相当于上键)

Ctrl + N:显示当前命令的下一条历史命令(相当于下键)

Ctrl + R:搜索历史命令,随着输入会显示历史命令中的一条匹配命令,Enter键执行匹配命令;ESC键在命令行显示而不执行匹配命令。

Ctrl + G:从历史搜索模式(Ctrl + R)退出。

控制命令

Ctrl + L:清除屏幕,然后,在最上面重新显示目前光标所在的这一行的内容。

Ctrl + O:执行当前命令,并选择上一条命令。

Ctrl + S:阻止屏幕输出

Ctrl + Q:允许屏幕输出

Ctrl + C:终止命令

Ctrl + Z:挂起命令(使用‘fg’命令恢复)

重复执行操作动作

Esc – 操作次数 操作动作 : 指定操作次数,重复执行指定的操作。

Bang(!)命令

!! :执行上一条命令。

^foo^bar :把上一条命令里的foo替换为bar,并执行。

!wget :执行最近的以wget开头的命令。

!wget:p :仅打印最近的以wget开头的命令,不执行。

!$ :上一条命令的最后一个参数, 与 Alt - . 和 $_ 相同。

!* :上一条命令的所有参数

!*:p :打印上一条命令是所有参数,也即 !*的内容。

^abc :删除上一条命令中的abc。

^foo^bar :将上一条命令中的 foo 替换为 bar

^foo^bar^ :将上一条命令中的 foo 替换为 bar

!-n :执行前n条命令,执行上一条命令: !-1, 执行前5条命令的格式是: !-5

来自  http://www.bjpowernode.com/tutorial_linux_release_project/1558.html




Mac/Linux终端光标的快捷键操作代码如下:
常用的快捷键:
Ctrl + d 删除一个字符,相当于通常的Delete键(命令行若无所有字符,则相当于exit;处理多行标准输入时也表示eof)
Ctrl + h 退格删除一个字符,相当于通常的Backspace键
Ctrl + u 删除光标之前到行首的字符
Ctrl + k 删除光标之前到行尾的字符
Ctrl + c 取消当前行输入的命令,相当于Ctrl + Break
Ctrl + a 光标移动到行首(Ahead of line),相当于通常的Home键
Ctrl + e 光标移动到行尾(End of line)
Ctrl + f 光标向前(Forward)移动一个字符位置
Ctrl + b 光标往回(Backward)移动一个字符位置
Ctrl + l 清屏,相当于执行clear命令
Ctrl + p 调出命令历史中的前一条(Previous)命令,相当于通常的上箭头
Ctrl + n 调出命令历史中的下一条(Next)命令,相当于通常的上箭头
Ctrl + r 显示:号提示,根据用户输入查找相关历史命令(reverse-i-search)</p>
<p>次常用快捷键:
Alt + f 光标向前(Forward)移动到下一个单词
Alt + b 光标往回(Backward)移动到前一个单词
Ctrl + w 删除从光标位置前到当前所处单词(Word)的开头
Alt + d 删除从光标位置到当前所处单词的末尾
Ctrl + y 粘贴最后一次被删除的单词


 

来自  https://www.jianshu.com/p/3a0a84fd5b19


 

在Mac系统中并没有Home、End等键,所以在使用时并不是特别的顺手,但是有几个键位组合可以使Terminal的操作更加灵活方便。

1、将光标移动到行首:ctrl + a

2、将光标移动到行尾:ctrl + e

3、清除屏幕: ctrl + l

4、搜索以前使用命令:ctrl + r

5、清除当前行: ctrl + u

6、清除至当前行尾: ctrl + k

7、单词为单位移动:option + 方向键

来自  https://www.bbsmax.com/A/WpdKmoVnJV/



image.png

如何在OS X终端中逐字移动光标



762

我知道组合CtrlA跳转到当前命令的开头,而CtrlE跳转到结尾。

但是,有什么方法可以像Cocoa应用程序中的Alt/ 一样逐字跳跃吗?


2
您正在使用什么外壳?重击?
— Sargun Dhillon

4
iTerm2比内置终端好得多。我在下面发布了有关如何自定义键盘的说明:)
— cwd

21
ALT快捷方式已被添加到终端在最新的OS X版本。
— Mosty Mostacho

7
在我看来,这不是一个话题,Bash shell是一个相关的编程环境,在大多数流行的Linux CLI应用程序中普遍存在readline绑定。另外,请看社区已发表的投票数。
— GL2014 2014年

11
重新投票,OS X Terminal非常视为编程工具。
— djechlin '16


Answers:



566

开箱即用,您可以使用非常奇怪的EscF移至下一个单词的开头,而EscB移至当前单词的开头。


47
再次按下两个键以再次重新执行命令是不方便的。与GNOME终端相比,我发现在Mac OSX终端中执行此操作相当la脚。
— PHUONG阮

244
您可以在终端>首选项>设置> [配置文件]>键盘中启用“将选项用作元键” 。然后,您不必单独手动键入Esc。
— 克里斯·佩奇

7
同样,如果您在行尾或其他键组合在行尾时按EscF,则只会插入字母。烦人!
— Noldorin

10
关于“ bizarre”:“ F”和“ B”代表“前进”和“后退”。Control-F将光标向前移动一个字符,而Control-B将光标向后移动一个字符。使用Meta修饰符(或ESC)表示“按字移动”。这些是emacs兼容的绑定。如果您使用的是bash,则可以选择使用vi兼容的绑定,也可以使用完全自定义它们~/.inputrc
— 克里斯·佩奇

5
不幸的是,对于那些需要使用Option键键入重要的shell符号(例如〜和|)的人来说,使用option作为meta并不是一个选择。(例如法语键盘上的)。
— Eric O Lebigot




417

在Mac OS X上-默认情况下,以下键盘快捷键有效。请注意,您必须在终端首选项中(在键盘选项卡下)使Option键像Meta一样运行

  • alt (⌥)+ 向前FF

  • alt (⌥)B跳过B单词

我观察到,用于简单文本导航的默认emacs键绑定似乎适用于bash shell。您可以使用

  • alt (⌥)D删除从当前光标位置开始的单词

  • ctrlA跳到行首

  • ctrlE跳到行尾

  • ctrlK杀死从光标位置开始的行

  • ctrlY从终止缓冲区粘贴文本

  • ctrlR从历史记录中反向搜索您过去键入的命令

  • ctrlS转发搜索(对我来说,在zsh中有效,但对bash无效)

  • ctrlF向前移动一个字符

  • ctrlB向后移动一个字符

  • ctrlW从光标位置向后删除单词


1
谢谢!我想知道为什么它没有开箱即用,这正是我所需要的。
— Flov 2011年

11
您可以按以下方式在iterm2 iterm 2中更改meta:首选项->配置文件->键->左选项键充当+ESC,然后可以使用OPTION f / b相应地前后移动单词。更多
— 艾伦·董

5
Ctrl + W ]-从光标位置向后删除单词
— YemSalat '16

[ctrl + u] -删除整个条目
— Cornelius




286

这是你怎么做

默认情况下,终端具有以下快捷方式来逐字移动(左右):

  • escB(左)

  • escF(右)

您可以配置alt为您生成这些序列:

  • 打开终端首选项(cmd,);

  • 在“设置”选项卡上,选择“键盘”,然后双击⌥ ←它(如果没有),或者添加它。

  • 根据需要设置修饰符,然后在框中输入快捷键:escB,生成文本\033b(您不能手动输入此文本)。

  • 重复右移字(escF变成\033f

或者,您可以在textmate上参考此博客文章:

http://blog.macromates.com/2006/word-movement-in-terminal/


7
对于MacOSX 10+和iTerm用户:您可以在全局首选项上分配按键快捷方式,或者作为配置文件按键组合。确保你选择:“发送转义序列”的下拉菜单中选择并输入刚才B背面FEsc+现场
— 格斯

+1是我以前没有想到的助记符。我肯定/很遗憾现在不会记住这一点,因为我配置alt leftalt right生成了这些序列
— Arc676,2015年

如果我将密钥映射添加到终端,它将绑定到'^ [B'而不是Esc-B。
— 安德里亚·贝尔贡佐




164

切换到iTerm2。它是免费的,比普通的旧终端好得多。此外,它还有许多用于自定义的选项,例如键盘快捷键。

我也很喜欢您可以使用cmd和1-9在选项卡之间切换。尝试一下,您将永远不会回到常规终端:)

如何在iterm2中设置自定义键盘首选项

  • 安装iTerm2

  • 启动,然后转到首选项窗格。

  • 选择键盘配置文件选项卡

  • 您可能需要将配置文件复制到新的内容,然后删除箭头快捷键(例如^Right/),Left或者如果您不关心备份,只需将其从默认配置文件中删除即可。

  • 接下来,请确保已选择您修改过的个人资料(已加星标)

图片1.png

  • 现在选择键盘标签(非常第一行)

iTerm 2

  • 单击加号按钮以添加新的键盘快捷键

  • 在第一个框中,输入CMD+Left arrow

  • 在第二个框中选择“发送转义码”

  • 在第三个框中键入字母 B

图片2.png

  • 重复所需的组合键。escapeB向左移动一个单词,escapef向右移动一个单词。

  • 你也不妨设立cmdd以删除光标前面的单词escape+d

我经常用箭头键敲击错误的按钮(cmdcontrolalt),因此我将箭头键组合在一起的那些按钮都设置为向前和向后跳转,但是请执行最适合您的操作。


4
无论我做什么,我不能进入Ctrl + Arrow LeftRightUpDown工程:/尝试使用和不使用新的配置文件设置为默认值
— 托比

4
解决方案:我不得不在MacOS系统偏好设置->键盘:)下禁用任务控制快捷方式
— Tobi,2017年

以上说明不适用于iTerm2。请参阅以下有关iTerm2 Build 3.3.4的答案。
— 挂起




150

实际上,有更好的方法。按住optionalt在某些键盘上),然后向左或向右按箭头键逐字移动。就那么简单。

option
option

ctrle可以将您带到行尾,ctrla并将您带到行头。


2
有时,在某些情况下这不起作用。对我来说,当我打开Terminal.app时,这很好,但是对于IntelliJ,它只是打印[D[C。为了解决这个问题,添加bind '"[D": backward-word'bind '"[C": forward-word'我的.bashrc
— Jamie Counsell

@JamieCounsell我向我添加了绑定内容,.bashrc但是没有用,对我来说有什么问题吗?(我使用RubyMine)
— 张艳军

@张艳军我不确定.bashrc终端启动时RubyMine是否读取。尝试echo "here"查看打开新终端时是否显示该消息。另外,您必须关闭并重新打开终端,或者运行source ~/.bashrc以使其读取新文件。
— Jamie Counsell's




79

我有Alt工作:打开“首选项”»“设置”»“键盘”,设置选项光标左侧的条目以将字符串发送到外壳:\ 033b,设置选项光标右侧将字符串发送到外壳:\ 033f。您也可以将其用于其他控制键组合。


20
要获取\ 033b,您实际上需要按Esc,然后按b。
— 马修·申克尔

7
我在Snow Leopard上,发现它只有在启用时才有效Enable option as meta key。顺便说一句,这很酷。关键是一定要方便多了要达到比较Esc键+ B或Esc键+ F
— PHUONG阮

2
出于好奇,这到底是怎么回事?为什么此代码与OSX开头的代码不同?我如何找到其他此类代码?
— Koobz 2011年

在我的Mac中,其“偏好设置”>“配置文件”>“左键”选项键设置为+ Ecs
— 2015年




38

实际上,这取决于您使用的外壳,但是大多数外壳具有相似的绑定。您所指的绑定(例如CtrlACtrlE)是您在许多其他程序中都可以找到的绑定,并且它们使用了很长时间,BTW在大多数UI应用程序中也可以使用。

这是Bash的默认绑定的外观:

最重要的Bash键盘快捷键

另请注意,您可以自定义它们。您需要创建一个文件,其名称随心所欲,我将其命名为mine .bash_key_bindings并将其放入主目录。在这里,您可以设置一些常规的bash选项,还可以设置键绑定。为了确保应用它们,您需要修改一个名为“ .bashrc”的文件,该文件将在bash启动时读取(如果不存在,则必须创建它)并在其中进行以下调用:

bind -f ~/.bash_key_bindings

〜表示在bash中的主目录,如上所述,您可以根据需要命名文件,也可以将其放在您喜欢的位置,只要输入正确的路径名即可进行绑定。

让我向您展示我的.bash_key_bindings文件的一些摘录:

set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set show-all-if-ambiguous on
set bell-style none
set print-completions-horizontally off

这些仅设置了几个选项(例如,禁用铃声;可以在bash网页上全部查看)。

"A": self-insert
"B": self-insert
"C": self-insert
"D": self-insert
"E": self-insert
"F": self-insert
"G": self-insert
"H": self-insert
"I": self-insert
"J": self-insert

这些确保仅字符就什么都不做,而是确保字符是“输入”的(将自己插入到外壳中)。

"\C-dW": kill-word
"\C-dL": kill-line
"\C-dw": backward-kill-word
"\C-dl": backward-kill-line
"\C-da": kill-line

这很有趣。如果我一个人打CtrlD(我选择d进行删除),则什么也不会发生。但是,如果我再输入小写字母w,则会删除光标左侧的单词。但是,如果键入大写字母,则光标右侧的单词将被杀死。对于从光标开始的整行,l和L同样适用。如果我键入“ a”,则实际上删除了整行(光标之前和之后的所有内容)。

我把跳向前移动一个单词CtrlF上,一个字向后Ctrl+B

"\C-f": forward-word
"\C-b": backward-word

如您所见,您可以创建一个快捷方式,该操作可以立即导致一个操作,或者您可以创建一个快捷方式,该操作仅初始化一个字符序列,然后您必须键入一个(或多个)字符以使操作按以下步骤进行:如上例所示。

因此,如果您对默认绑定不满意,请随意自定义它们。这是bash手册链接,以获取更多信息。


command密钥代码如何?在您的示例中,control\C,但是如何command
— Paschalis 2014年

基本上我想将Ctrl + A映射到cmd + left(转到行的开头)
— Paschalis 2014年

1
@Paschalis在MacOS X上,命令键以Metabash(\M)映射到,cmd + left为\M-\e[D。但是,您无法将cmd + ...映射到任何内容,所有命令快捷方式都由终端应用程序本身处理(因此被吞没了)(从来没有转发到Shell),并且如果您有多个命令,则cmd + left映射到“上一个窗口”终端窗口打开。抱歉,使用终端应用程序是不可能的。
— Mecki 2014年




18

使用自然文本编辑预设!

在此处输入图片说明

本质上,除了其他键序列外,它还绑定Option + LeftArrow到^[bsequence和Option + RightArrow到^[f

这适用于fish和bash以及psql终端。


这是为键设置良好的旧映射的最有效方法。谢谢!
— fedesismo19年

万一其他人像我一样感到困惑,请注意,此预置仅在配置文件“键”子选项卡下可用,而在顶级“ 键”选项卡下不可用。
— 本·阿尔布雷希特




15

如果您恰好是Vim用户,则可以尝试bash的vim模式。运行此命令或将其放入~/.bashrc文件中:

set -o vi

默认情况下,您处于插入模式;命中转义,您可以像在普通模式下的Vim一样来回走动,因此按字移动是wb通常的移动键也可以使用




15

如果您Use option as meta key在首选项的键盘选项卡中签入,则默认的emacs样式命令分别用于前向和后向单词以及⌥FAltF)和⌥BAltB)。

我建议阅读从Bash到Z-Shell。如果您想提高bash / zsh的实力!


1
是的,那行得通。但是问题是当我想在选项7,选项8和选项9上键入大括号([] {} |)时。现在选项是元,所以最终以元7,元8结束...有什么想法吗?
— Martin Wickman




12

从Mac OS X Lion 10.7开始,默认情况下,Terminal映射OptionLeft/Right ArrowEscb/f,因此,它是内置于bash和其他使用这些emacs兼容键绑定的程序的。







8

在Bash中,这些绑定到EscBEscF。Bash有很多很多键盘快捷键。bind -p看一下它们的输出,看看它们是什么。




4

在的iterm2“ 偏好设置”>“配置文件”>“键”下,单击+下面的“ 键映射”并记录新的快捷方式。对于“操作”,分别选择Send Escape Sequence并键入bf,或者分别向后和向前。

当我尝试为(Ctrl)录制一个时,我在“ 键盘快捷键”字段中注意到箭头从未出现。事实证明,我必须先禁用默认Mac的“ 系统偏好设置”>“键盘”>“快捷方式”>“任务控制”快捷方式,然后才能使用,因为它们将覆盖iterm2的默认快捷方式。对于标准终端应用程序也应如此。

键盘系统偏好设置




1

iTerm2 Build 3.3.4用户的新答案:

步骤1:(macOS X)“系统偏好设置”>“键盘”>“快捷方式”选项卡>选择“任务控制”(左侧面板)>取消选中标记为“向左移动空间”和“向右移动空间”的快捷方式

步骤2:(iTerm2 Build 3.3.4)“首选项”>“配置文件”>“选择*默认值”(左面板)>“键”选项卡>删除“⌥->”和“⌥<-”条目,同时设置“左选项(⌥)”键: ”和“右键(⌥)键:”到Esc +

不要弄乱外壳轮廓,不要弄乱劣质masOS(默认)终端,不要笨拙地按Esc + F / B,冲洗并重复无意义。

木已成舟!!!

我的程序员程序员,请喜欢这篇技巧!




0

正如前面回答,您可以添加set -o vi在您~/.bashrc使用vivim键绑定,否则你可以添加以下部分.bashrc与移动Ctrl和箭头键:

# bindings to move 1 word left/right with ctrl+left/right in terminal, just some apple stuff!
bind '"\e[5C": forward-word'
bind '"\e[5D": backward-word'
# bindings to move 1 word left/right with ctrl+left/right in iTerm2, just some apple stuff!
bind '"\e[1;5C": forward-word'
bind '"\e[1;5D": backward-word'

要开始执行这些代码行,请选择source ~/.bashrc或开始一个新的终端会话。





1. 常用快捷键


2. 移动光标

Ctrl – a :移到行首
Ctrl – e :移到行尾
Ctrl – b :往回(左)移动一个字符
Ctrl – f :往后(右)移动一个字符
Alt – b :往回(左)移动一个单词
Alt – f :往后(右)移动一个单词
Ctrl – xx :在命令行尾和光标之间移动
M-b :往回(左)移动一个单词
M-f :往后(右)移动一个单词

3. 编辑命令

Ctrl – h :删除光标左方位置的字符
Ctrl – d :删除光标右方位置的字符(注意:当前命令行没有任何字符时,会注销系统或结束终端)
Ctrl – w :由光标位置开始,往左删除单词。往行首删
Alt – d :由光标位置开始,往右删除单词。往行尾删
M – d :由光标位置开始,删除单词,直到该单词结束。
Ctrl – k :由光标所在位置开始,删除右方所有的字符,直到该行结束。
Ctrl – u :由光标所在位置开始,删除左方所有的字符,直到该行开始。
Ctrl – y :粘贴之前删除的内容到光标后。
ctrl – t :交换光标处和之前两个字符的位置。
Alt + . :使用上一条命令的最后一个参数。
Ctrl – _ :回复之前的状态。撤销操作。
Ctrl -a + Ctrl -k 或 Ctrl -e + Ctrl -u 或 Ctrl -k + Ctrl -u 组合可删除整行。

3. Bang(!)命令

!! :执行上一条命令。
!wget :执行最近的以wget开头的命令。
!wget:p :仅打印最近的以wget开头的命令,不执行。
!$ :上一条命令的最后一个参数, 与 Alt - . 和 $_ 相同。
!* :上一条命令的所有参数
!*:p :打印上一条命令是所有参数,也即 !*的内容。
^abc :删除上一条命令中的abc。
!-n :执行前n条命令,执行上一条命令: !-1, 执行前5条命令的格式是: !-5 查找历史命令
Ctrl – p :显示当前命令的上一条历史命令
Ctrl – n :显示当前命令的下一条历史命令
Ctrl – r :搜索历史命令,随着输入会显示历史命令中的一条匹配命令,Enter键执行匹配命令;ESC键在命令行显示而不执行匹配命令。
Ctrl – g :从历史搜索模式(Ctrl – r)退出。

4. 控制命令

Ctrl – l :清除屏幕,然后,在最上面重新显示目前光标所在的这一行的内容。
Ctrl – o :执行当前命令,并选择上一条命令。
Ctrl – s :阻止屏幕输出
Ctrl – q :允许屏幕输出
Ctrl – c :终止命令
Ctrl – z :挂起命令


来自  https://www.linuxprobe.com/linux-terminal-kj.html


把下面这个放到bashrc的最下面


export DISPLAY=192.168.233.193:0


之后保存,执行如下指令。注意IP用你的IP,别直接复制。


source ~/.bashrc


tar 命令:

tar xvf trunk-master.tar

tar zxvf trunk-master.tar.gz

不详细列出解压文件

tar xf trunk-master.tar


** linux command **


ctrl+左右键:在单词之间跳转

ctrl+a:跳到本行的行首

ctrl+e:跳到页尾

Ctrl+u:删除当前光标前面的文字 (还有剪切功能)

ctrl+k:删除当前光标后面的文字(还有剪切功能)

Ctrl+L:进行清屏操作

Ctrl+y:粘贴Ctrl+u或ctrl+k剪切的内容

Ctrl+w:删除光标前面的单词的字符

Alt – d :由光标位置开始,往右删除单词。往行尾删


Ctrl – b :往回(左)移动一个字符

Ctrl – f :往后(右)移动一个字符

Alt – b :往回(左)移动一个单词

Alt – f :往后(右)移动一个单词

Ctrl – xx :在命令行尾和光标之间移动

1

2

3

4

5

编辑命令


Ctrl – h :删除光标左方位置的字符

Ctrl – d :删除光标右方位置的字符(注意:当前命令行没有任何字符时,会注销系统或结束终端)

Ctrl – w :由光标位置开始,往左删除单词。往行首删

Alt – d :由光标位置开始,往右删除单词。往行尾删

M – d :由光标位置开始,删除单词,直到该单词结束。

Ctrl – y :粘贴之前删除的内容到光标后。

ctrl – t :交换光标处和之前两个字符的位置。

Alt + . :使用上一条命令的最后一个参数。

Ctrl – _ :回复之前的状态。撤销操作。



!! :执行上一条命令。

^foo^bar :把上一条命令里的foo替换为bar,并执行。

!wget :执行最近的以wget开头的命令。

!wget:p :仅打印最近的以wget开头的命令,不执行。

!$ :上一条命令的最后一个参数, 与 Alt - . 和 $_ 相同。

!* :上一条命令的所有参数

!*:p :打印上一条命令是所有参数,也即 !*的内容。

^abc :删除上一条命令中的abc。

^foo^bar :将上一条命令中的 foo 替换为 bar

^foo^bar^ :将上一条命令中的 foo 替换为 bar

!-n :执行前n条命令,执行上一条命令: !-1, 执行前5条命令的格式是: !-5

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

查找历史命令


Ctrl – p :显示当前命令的上一条历史命令

Ctrl – n :显示当前命令的下一条历史命令

Ctrl – r :搜索历史命令,随着输入会显示历史命令中的一条匹配命令,Enter键执行匹配命令;ESC键在命令行显示而不执行匹配命令。

Ctrl – g :从历史搜索模式(Ctrl – r)退出。

1

2

3

4

控制命令


Ctrl – l :清除屏幕,然后,在最上面重新显示目前光标所在的这一行的内容。

Ctrl – o :执行当前命令,并选择上一条命令。

Ctrl – s :阻止屏幕输出

Ctrl – q :允许屏幕输出

Ctrl – c :终止命令

Ctrl – z :挂起命令

1

2

3

4

5

6

git --depth = 1 代码更改 如果不作为开发者贡献 直接 = 1

给执行sh脚本权限

chmod +x run.sh

pacman -Q1 openvc


CMake command

ldd a.out 查看依赖库

cmake -B build

cmake --build build --target a.out

build/a.out

add_definitions(-DNOMINMAX)


**vim command **

:w 保存不退出

:w 新文件名 把文件另存为新文件

:q 不保存退出

:wq 保存退出

:! 强制

:q! 强制不保存退出,用于修改文件之后,不保存数据退出

:wq! 强制保存退出,当文件的所有者或 root 用户,对文件没有写权限的时候,强制写入数据使用

1)、上下左右移动光标


上、下、左、右方向键 移动光标

h(左) j(下) k(上) l(右) 移动光标

1

2

2)、光标移动到文件头或文件尾


gg 移动到文件头

G 移动到文件尾(shift + g)

1

2

3)、光标移动到行首或行尾


^ 移动到行首

$ 移动到行尾

1

2

4)、移动到指定行


:n 移动到第几行(这里的 n 是数字)

1

1)、删除字母


x 删除单个字母

nx 删除 n 个字母(n 是数字,如果打算从光标位置连续删除 10 个字母,可以使用 10x 即可)

1

2

2)、删除整行或剪切


dd 删除单行

ndd 删除多行

:n1,n2d 删除指定范围的行

1

2

3

删除行或多行,是比较常用的删除方法。这里的 dd 快捷键既是删除也是剪切。删除内容放入了剪切板 剪贴板,如果不粘贴就是删除,粘贴就是剪切。粘贴方法:


p 粘贴到光标下面一行

P 粘贴到光标上面一行

1

2

3)、从光标所在行删除到文件尾


dG 从光标所在行删除到文件尾(d 是删除行,G 是文件尾,连起来就是从光标行删除到文件尾)

1

3、复制


yy 复制单行

nyy 复制多行

1

2

复制之后的粘贴依然可以使用 p 键或 P 键


4、撤销


u 撤销

ctrl + r 反撤销

1

2

u 键能一直撤销到文件打开时的状态,ctrl + r 能一直反撤销到最后一次操作状态


5、替换


r 替换光标所在处的字符

R 从光标所在处开始替换字符,按 esc 键结束

1

2

4、末行模式操作


1、一些设置操作


设置参数含义:set nu


:set nonu显示与取消行号:syntax on


:syntax off是否依据语法显示相关颜色帮助。默认会显示相关颜色来帮助排错:set hlsearch


:set nohlsearch设置是否将查找的字符串高亮显示。默认是高亮显示:set showmode


:set noshowmode设置是否在左下角显示如“-INSERT-” 之类的状态栏。默认是开启的:set list


:set nolist设置是否显示隐藏字符。(tab 键用 “^I” 表示,回车符用 “$” 键表示)


注:


上面设置的参数都只是临时生效,一旦关闭文件再打开,又需要重新输入。如果想要永久生效,需要手动建立 vim 的配置文件 ==“~/vimrc”== ,把你需要的参数写入配置文件就永久生效了。Windows 下回车符在 Linux 中是用 “^M$” 显示的,而不是 “$” 。这样会导致 Windows 下编辑的程序脚本(如 shell 脚本),无法在 Linux 中执行。这时可以通过命令 ==「dos2unix」==,把 windows 格式转换为 Linux 格式。同样可以使用 ==「unix2dos」== ,把 Linux 格式转换为 Windows 格式。这两个命令默认没有安装,需要手动安装才能使用。

1

2、查找


/查找内容 从光标所在行向下查找

?查找内容 从光标所在行向上查找

n 下一个

N 上一个

1

2

3

4

3、替换


:1,10s/old/new/g 替换 1 到 10 行所有 old 为 new(s 表示替换)

:%s/old/new/g 替换整个文件的 old 为 new(% 是一个变量,在这里代表整篇文档)

1

2

在 shell 中 “#” 开头是注释,假如说我想注释文件前 10 行,如果手工一个一个注释会很麻烦,可以使用替换来解决。


:1,10s/^/#/g 注释 1 到 10 行

:1,10s/^#//g 取消 1 到 10 行的注释

1

2

1、导入其他文件的内容


:r 文件名 把文件内容导入到光标位置

1

:r /root/aa.txt #末行模式下,输入这个会把 /root/aa.txt 文件的内容加到你光标所在处


2、在 vim 中执行系统命令


:!命令 在 vim 中执行系统命令

1

这里只是在 vim 中执行系统命令,但并不把系统命令的结果写入到文件中。主要用于在文件编辑中,查看系统信息,如时间。


3、导入命令结果


:r !命令 在 vim 中执行系统命令,并把命令结果导入光标所在行

1

4、多文件打开


在 vim 中可以同时打开两个文件


[root@hepingfly ~]# vim -o aa.txt abcd 上下分屏打开两个文件(小 o)

[root@hepingfly ~]# vim -O aa.txt abcd 左右分屏打开两个文件(大 O)


如果是上下打开两个文件,可以通过先按 「ctrl + w」再按上下箭头的方式在两个文件之间切换。


如果是左右打开两个文件,可以通过先按 「ctrl + w」再按左右箭头的方式在两个文件之间切换。


$ 行尾

0行首

^ 行首 无空格的地方

w 5w 6w 自动跳到下一个单词开始 e 6e 7e 自动跳到下一个单词结尾 shift w shift e 只看空格

b 反方向跳单词 shift b 只看空格 B shift = 大写

2- 3+ 5+ 4+ 跳到第+行


v 选中模式

dw 删除单词 d1w d2w d3w

cw 删除并且至直接重写

c1w c2w c3w

{上一段落

}下一段落


f a f c f d f之后的单词跳转到


V选中行 norm 0x 删除第一个单词 norm 0x i# norm s/old/new/g 只替换选中内容

视觉效果

ctrl u 下一个页面 ctrl d 上一个页面

ctrl y 下一个行 ctrl e 上一个行

:set cindent 设置缩进

vi{ 选中括号内内容

set ts = 4 设置缩进


v 选中之后 = 自动格式化

————————————————

来自  https://blog.csdn.net/jackonly1/article/details/127144964



普通分类: