Linux Ctrl组合键 Shell/Vim快捷键 Sublime/IDE多行编辑快捷键

【Linux Ctrl组合键】


	整理下日常工作使用的快捷键,部分是网络上找的,也有自己记录的一部分,
	格式是直接从笔记中粘贴过来的,持续更新~~

Mac Terminal终端和linux上终端光标的快捷键操作是一样的,都是来自Emacs这个神级的编辑器,由于我以前vim用的多,没怎么用过Emacs,所以就不习惯了。

以上就是快捷键了,在这里我只想揭露一些事情,这些快捷键都是emacs的快捷键!熟悉终端的同学应该知道,终端里可以设置快捷键的类型是vim还是emacs。当然了大多数的终端都用的emacs,因为啥自己想去吧。我估计原因是这些东西都是早期的C/C++大神写的,一脉相承下来的!
mac os x虽然是图形界面,但是chrome,xcode也支持这些快捷键!


CTRL 键相关的快捷键:
Ctrl + a - Jump to the start of the line
Ctrl + b - Move back a char
Ctrl + c - Terminate the command //用的最多了吧?
Ctrl + d - Delete from under the cursor
Ctrl + e - Jump to the end of the line
Ctrl + f - Move forward a char
Ctrl + k - Delete to EOL
Ctrl + l - Clear the screen //清屏,类似 clear 命令
Ctrl + r - Search the history backwards //查找历史命令
Ctrl + R - Search the history backwards with multi occurrence
Ctrl + u - Delete backward from cursor // 密码输入错误的时候比较有用
Ctrl + xx - Move between EOL and current cursor position
Ctrl + x @ - Show possible hostname completions
Ctrl + z - Suspend/ Stop the command
补充:
Ctrl + h - 删除当前字符
Ctrl + w - 删除最后输入的单词
Ctrl + y 粘贴最后一次被删除的单词
Ctrl+s 暂停屏幕输出【锁住终端】
Ctrl+q 恢复屏幕输出【解锁终端】
Ctrl+t 调换光标所在处与其之前字符位置,并把光标移到下个字符


Ctrl+C :强制中断程序,程序无论运行哪里都停止。

Ctrl+D :发送一个 exit 的信号,退出当前的用户或者是客户端。

Ctrl+Z :暂停程序,在进程中维持挂起状态。

Ctrl+\ :表示异常退出。quit


linux下:
ctrl-c 发送 SIGINT 信号给前台进程组中的所有进程。常用于终止正在运行的程序。
ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程。
ctrl-d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。
ctrl-\ 发送 SIGQUIT 信号给前台进程组中的所有进程,终止前台进程并生成 core 文件。

Key Function
Ctrl-c Kill foreground process
Ctrl-z Suspend foreground process
Ctrl-d Terminate input, or exit shell
Ctrl-s Suspend output
Ctrl-q Resume output
Ctrl-o Discard output
Ctrl-l Clear screen


常用的快捷键:
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)

ALT 键相关的快捷键:
平时很少用。有些和远程登陆工具冲突。
单词为单位移动:option + 方向键

次常用快捷键:
Alt + f 光标向前(Forward)移动到下一个单词
Alt + b 光标往回(Backward)移动到前一个单词
Alt + d 删除从光标位置到当前所处单词的末尾


Alt + < - Move to the first line in the history
Alt + > - Move to the last line in the history
Alt + ? - Show current completion list
Alt + * - Insert all possible completions
Alt + / - Attempt to complete filename
Alt + . - Yank last argument to previous command
Alt + b - Move backward
Alt + c - Capitalize the word
Alt + d - Delete word
Alt + f - Move forward
Alt + l - Make word lowercase
Alt + n - Search the history forwards non-incremental
Alt + p - Search the history backwards non-incremental
Alt + r - Recall command
Alt + t - Move words around
Alt + u - Make word uppercase
Alt + back-space - Delete backward from cursor
// SecureCRT 如果没有配置好,这个就很管用了。
其他特定的键绑定:
输入 bind -P 可以查看所有的键盘绑定。这一系列我觉得更为实用。

Here “2T” means Press TAB twice
$ 2T - All available commands(common) //命令行补全,我认为是 Bash 最好用的一点
$ (string)2T - All available commands starting with (string)
$ /2T - Entire directory structure including Hidden one
$ ./2T - Only Sub Dirs inside including Hidden one
$ *2T - Only Sub Dirs inside without Hidden one
$ ~2T - All Present Users on system from “/etc/passwd” //第一次见到,很好用
$ $2T - All Sys variables //写Shell脚本的时候很实用
$ @2T - Entries from “/etc/hosts” //第一次见到
$ =2T - Output like ls or dir //好像还不如 ls 快捷
补充:
Esc + T - 交换光标前面的两个单词


【Linux Shell快捷键】


vim 命令模式下常用的快捷键:

h //左移动(left)
j //下移动(bottom)
k //上移动(top)
l //右移动(right)

ctrl + f //向下移动一页
ctrl + b //向上移动一页

0 //移动到行头
$ //移动到行尾
w //跳向后一个单词

G //移动到文件最后一行(常用)
nG //移动到文件第几行
gg //移动到这个文件的第一行。

:%s/word1/word2/g //表示word1全部替换为word2
/word //查找 WOED 的字符。
//向下( n )
//向上( N )

x //删除光标处一个字符
dw //删除该单词
dd //删除光标所在行
ndd //删除光标所在行下面n行
d1G //删除光标所在行到第一行的所有数据。
dG //删除光标所在行到最后一行的所有数据。

yw //复制该单词
yy //复制光标所在那一行的所有数据
nyy //复制光标所在的所在的向下n行,n为数字
y1G //复制光标所在行到第一行的所有数据。
yG //复制光标所在行到最后一行的搜有数据。


多文件编辑相关:

1.在同一窗口下显示多个文件
命令:vim filename1 filename2
说明:上述命令同时打开了filename1,filename2两个文件,不过文件filename1的内容将占据整个vim窗口,要想在各个文件之间进行切换,我们可通过如下命令
:n 切换到下一个文件
:N 切换到上一个文件
:n filename2 切换到文件filename2

2.分割窗口,显示多个文件
对于在同一个窗口下打开多个文件,对于各文件之间内容的复制,剪切操作终究不方便,我们可使用命令对窗口进行分割,每个子窗口显示一个文件
命令:vim -o filename1 filename2 水平分割窗口
vim -O filename1 filename2 垂直分割窗口

1.文件间切换
Ctrl+6 //两文件间的切换
:bn //下一个文件
:bp //上一个文件
:ls //列出打开的文件,带编号
:b1~n //切换至第n个文件
对于用(v)split在多个窗格中打开的文件,这种方法只会在当前窗格中切换不同的文件。
2.在窗格间切换的方法
Ctrl+w+方向键——切换到前/下/上/后一个窗格
Ctrl+w+h/j/k/l ——同上
Ctrl+ww——依次向后切换到下一个窗格中

我们可按ctrl ww在各窗口之间进行切换。

关闭光标所在的窗口:
:q 或 :close
关闭除光标所在的窗口之外的其他窗口:
:only
关闭所有窗口:
:qa

通过该种方式可非常方便各文件内容之间的复制与剪切操作,这里顺便简单提一下复制,剪切与粘贴操作命令
yy 复制光标所在行
dd 剪切光标所在行
5yy 复制从光标所在行开始计数的下五行文本
5dd 剪切从光标所在行开始计数的下五行文本
v(小写) visual模式,通过上下左右键选择光标“扫过”的所有字符
V (大写) visual line 模式,通过上下键选择光标“扫过”的所有行
ctrl + v visual block 模式,通过上下左右键选择一个矩形文本
y 复制在visual模式, visual line模式和visual block 模式下选择的文本
d 剪切在visual模式, visual line模式和visual block 模式下 选择的文本
p(小写) 粘贴, 粘贴位置为光标所在行的下一行
P(大写) 粘贴, 粘贴位置为光标所在行的上一行
u: 撤销操作
r: 重做操作

提示:
a.假若我们通过vim打开了多个文件后,想在不关闭vim的情况下继续打开其他文件,如文件file,可在vim中使用如下命令:
:e file 不会分割窗口
:sp file 将会水平分割窗口 (split)
:vsp file 将会垂直分割窗口
b. vim和shell之间切换
:shell 切换到shell,此时vim在后台运行,在shell中输入命令exit,切换回vim
c. 在vim中执行shell命令(不切换到shell)
:!command 在执行的命令前加上!,如!ls ,!ls -a
: r !command 将command命令的执行结果插入到文本当前行的下一行
: 3 !command 将文本中第三行的内容输入到命令command中进行处理,并将第三行的内容替换为命令的执行结果
:1,3 !command 将文本中第一行到第三行的内容输入到命令command中进行处理,并将第一行到第三行的内容替换为命令的执行结果
: 3 w !command 将文本中第三行的内容输入到命令command中进行处理,不改变当前编辑文件的内容.
:1,3 w !command 将文本中第一行到第三行的内容输入到命令command中进行处理,不改变当前编辑文件的内容

vim全选,全部复制,全部删除
全选(高亮显示):按esc后,然后ggvG或者ggVG
全部复制:按esc后,然后ggyG
全部删除:按esc后,然后ggdG

解析:
gg:是让光标移到首行,在vim才有效,vi中无效
v : 是进入Visual(可视)模式
G :光标移到最后一行
选中内容以后就可以其他的操作了,比如:
d 删除选中内容
y 复制选中内容到0号寄存器
"+y 复制选中内容到+寄存器,也就是系统的剪贴板,供其他程序用


标题【Sublime/IDE多行编辑快捷键】


鼠标选中多行,按下 Ctrl Shift L (Command Shift L) 即可同时编辑这些行;
鼠标选中文本,反复按 CTRL D (Command D) 即可继续向下同时选中下一个相同的文本进行同时编辑;
鼠标选中文本,按下 Alt F3 (Win) 或 Ctrl Command G(Mac) 即可一次性选择全部的相同文本进行同时编辑;
Shift 鼠标右键 (Win) 或 Option 鼠标左键 (Mac) 或使用鼠标中键可以用鼠标进行竖向多行选择;
Ctrl 鼠标左键(Win) 或 Command 鼠标左键(Mac) 可以手动选择同时要编辑的多处文本


打开/前往
⌘T 前往文件
⌘⌃P 前往项目
⌘R 前往 method
⌘⇧P 命令提示
⌃G 前往行
⌘KB 开关侧栏
⌃ ` python 控制台
⌘⇧N 新建窗口

编辑
⌘L 选择行 (重复按下将下一行加入选择)
⌘D 选择词 (重复按下时多重选择相同的词进行多重编辑)
⌃⇧M 选择括号内的内容
⌘⇧↩ 在当前行前插入新行
⌘↩ 在当前行后插入新行
⌃⇧K 删除行
⌘KK 从光标处删除至行尾
⌘K⌫ 从光标处删除至行首
⌘⇧D 复制(多)行
⌘J 合并(多)行
⌘KU 改为大写
⌘KL 改为小写
⌘ / 注释
⌘⌥ / 块注释
⌘Y 恢复或重复
⌘⇧V 粘贴并自动缩进
⌃ space 自动完成(重复按下选择下一个提示)
⌃M 跳转至对应的括号
⌘U 软撤销(可撤销光标移动)
⌘⇧U 软重做(可重做光标移动)
XML/HTML
⌘⇧A 选择标签内的内容
⌘⌥ . 闭合当前标签

查找/替换
⌘F 查找
⌘⌥F 替换
⌘⌥G 查找下一个符合当前所选的内容
⌘⌃G 查找所有符合当前所选的内容进行多重编辑
⌘⇧F 在所有打开的文件中进行查找

拆分窗口/标签页
⌘⌥1 单列
⌘⌥2 双列
⌘⌥5 网格 (4组)
⌃[1,2,3,4] 焦点移动至相应组
⌃⇧[1,2,3,4] 将当前文件移动至相应组
⌘[1,2,3…] 选择相应标签页

书签
⌘F2 添加/去除书签
F2 下一个书签
⇧F2 前一个书签
⌘⇧F2 清除书签

标记
⌘K space 设置标记
⌘KW 从光标位置删除至标记
⌘KA 从光标位置选择至标记
⌘KG 清除标记

mac和windows区别
在Windows电脑中,有两个键可以实现删除的功能,一个是画着←的BackSpace退格键,一个是Delete键。退格键可以删除光标左边的文字,Delete键可以删除光标右边的文字,也可以用来删除文件。

而在Mac电脑中,删除只有一个标着Delete的键,单按此键可以删除光标左边的文字,那,其它删除功能怎么实现呢?下面我们就来介绍Mac电脑Delete键的5种用法。


【Mac删除键】


mac中delete键的5种用法
第一种:按 delete 键,实现 Windows 键盘上退格键的功能,也就是删除光标之前的一个字符(默认);

第二种:按 fn+delete 键,删除光标之后的一个字符;

第三种:按 option+delete 键,删除光标之前的一个单词(英文有效);

第四种:结合第二种,按住fn+option+delete,删除光标之后的一个单词;

第五种:选中文件后按 command+delete,删除掉该文件。


【Vim发展历史/设计理念】


Vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。

使用vim先知道其设计理念是很重要的,有助于记忆,举一反三。

1.vim的设计理念是组合;
命令组合:
Vim强大的编辑能力中很大部分是来自于其普通模式命令。vim的设计理念是命令的组合。例如普通模式命令"dd"删除当前行,"dj"代表删除到下一行,原理是第一个"d"含义是删除,"j"键代表移动到下一行,组合后"dj"删除当前行和下一行。另外还可以指定命令重复次数,“2dd”(重复"dd"两次),和"dj"的效果是一样的。"d",""代表行首,故组合后含义是删除到光标开始到行首间的内容(不包含光标);“d$” $"代表行尾,删除到行尾的内容(包含光标);用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。

模式间的组合:
在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按"a"(append/追加)键或者"i"(insert/插入)键。

2.很多快捷键设置和正则表达式类似,可以辅助记忆;
^ $ w 等

3.vim针对程序员做了优化;
写代码的时候手需要时刻保持在键盘上,随机定位代码、随机删除代码、移动代码、插入代码的操作大大多于阅读、翻页操作,中间卡顿一下效率就大大降低了;但对普通用户而言,顺序写、设置字体格式、翻页读多于随机写删除操作, 且每个动作之间本身就有很多的停顿,用其他UI编辑器(word,notePad++等)效率反而比VIM高效,使用vim进行操作只会徒增你的疑惑: vim为什么这么流行。(如果你不是一个代码开发者,估计你看完这段话也无法感同身受,建议先去学一门编程语言,新手推荐学C,java入门,做一道50行代码的课后习题,来感受下写代码的过程)
Bram Moolenaar 在 80 年代末购入他的Amiga计算机时,Amiga 上没有他最常用的编辑器vi。Bram 从一个开源的 vi 复制 Stevie 开始,开发了 Vim 的 1.0 版本。最初的目标只是完全复制 vi 的功能,那个时候的 Vim 是Vi IMitation(模拟)的简称。1991 年 Vim 1.14 版被 “Fred Fish Disk #591” ——Amiga 用的免费软体集收录了。1992 年 1.22 版本的 Vim 被移植到了 UNIX 和MS-DOS上。从那个时候开始,Vim 的全名就变成 Vi IMproved(改良)了。
在这之后,Vim 加入了不计其数的新功能。做为第一个里程碑的是 1994 年的 3.0 版本加入了多视窗编辑模式(分割视窗)。从那之后,同一荧幕可以显示的 Vim 编辑文件数可以不止一个了。1996 年发布的 Vim 4.0 是第一个利用图形接口(GUI)的版本。1998 年 5.0 版本的 Vim 加入了 highlight(语法高亮)功能。2001 年的 Vim 6.0 版本加入了代码折叠、插件、多国语言支持、垂直分割视窗等功能。2006 年 5 月发布的 Vim 7.0 版更加入了拼字检查、上下文相关补完,标签页编辑等新功能。 2008 年 8 月发布的 Vim 7.2,该版本合并了 vim 7.1 以来的所有修正补丁,并且加入了脚本的浮点数支持,2010年08月15日,历时两年的时间,vim又发布了vim 7.3这个版本,这个版本修复了前面版本的一些bug,以及添加了一些新的特征,这个版本比前面几个版本来的要更加优秀。

4.2016年9月12日 Vim 8.0;
十年以后,Vim 终于发布了一个新的大版本 8.0 ,结束了从 2006 年 5 月 7 日开始的 7.0 世代。虽然这十年间,Vim 也一直在不断更新,从 7.0 到三年前的 7.4,每隔一两年或两三年就会有个小版本更新,但是这次跨越大版本更新,带来了不少新的特性,据说有一些是从其它的 Vi 流派吸收来的特性。

你可能感兴趣的:(工具,Linux)