Linux vi 命令 + 命令行 快捷操作
跳到开始:GG跳到最后:shift + G查找关键字:/撤销:U删除、剪切、复制批量注释:Ctrl V ------ 按向下箭头选中要注释的区域 ------ shift i ------- # ------ ESC取消批量注释:Ctrl V ------ 按向下箭头选中要注释的区域 ------ delete设置行号:set number选中复制一个连续的字符串:...
vim的模式
正常模式(也叫命令模式,按 Esc 或 Ctrl+[ 进入) 左下角显示文件名或为空
插入模式(在命令模式下按 i 键进入) 左下角显示--INSERT--
可视模式(在命令模式下按ctrl + v) 左下角显示--VISUAL--
末行模式(在命令模式下,按下“:”或者“/(表示查找)”即可进入),退出方式:按下esc,连按2次esc键 ,删除末行全部输入字符
插入命令
i 在当前位置前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行(换行插入)
O 在当前行之前插入一行(换行插入)
进入编辑模式,按 i 或者 o 进行编辑
编辑结束,按ESC 键 跳到命令模式,然后输入退出命令:
:w 保存文件但不退出vi 编辑
:w! 强制保存,不退出vi 编辑
:w file 将修改另存到file中,不退出vi 编辑
:wq 保存文件并退出vi 编辑
:wq! 强制保存文件并退出vi 编辑
q: 不保存文件并退出vi 编辑
:q! 不保存文件并强制退出vi 编辑
:x 该命令的功能同命令模式下的ZZ命令功能相同
:e! 放弃所有修改,从上次保存文件开始在编辑
在命令模式中,ZZ,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;若当前编辑的文件没被修改过,则Vi直接退出, 返回到shell。
调用外部命令(了解)
输入:“:!外部命令”【外部指令写法与在正常终端中执行一样】
vi分屏:vsp、sp(末行模式下使用,前面要加":")
跳到开始:gg
跳到最后:shift + g
合并多行:shift + j
查找关键字:/
查找光标位置单词:shift+8
跳转文件:gf(go file)
跳转回来:ctrl + 6
撤销:u
剪切:dd(剪切光标所处当前行)
多行剪切:ndd(剪切光标所在行及以下共 n 行)
复制:yy(复制光标所处当前行)
多行复制:nyy(复制光标所在行及以下共 n 行)
粘贴:p
粘贴:单击滚轮
选中复制一个连续的字符串:双击
vi/vim中复制借助“y”,删除借助“d”,那么剪贴呢?
剪贴就是在删除之后再粘贴。原来这儿的删除不是真删除,而是放在缓冲区了。
复制
1."yy" 编辑模式下,复制光标所在行内容。
2."nyy" 编辑模式下,复制从光标所在行开始向下数共n行内容。
3.":n1,n2y" 命令行模式下,复制从行标n1开始n2结束所有行内容。
删除
1."dd" 删除光标所在行内容。
2."ndd" 删除从光标所在行开始的n行。
3.":n1,n2d" 删除从行标n1开始n2结束的所有行内容。
剪贴
就是在执行了一个删除操作之后,按下“p”,剪出的内容将粘贴在光标所在行的下面。
其他
1.":n1con2" 将行标n1的内容复制到行标n2的下面。
2.":n1,n2con3" 将行标n1和n2之间的内容复制到行标n3下面。
3.":r 文件名" 将文件所有内容复制到当前文件,插入到光标所在行下面。
撤销
1."u" 撤销前一个操作
2.":e!" 回到文件载入时的状态(前提是在载入后文件没有在vi之外改变),实质是从硬盘载入文件。这在利用多种方式对文件进行编辑时是很有用的。
批量注释:Ctrl V ------ 按向下箭头选中要注释的区域 ------ shift i ------- # ------ ESC
取消批量注释:Ctrl V ------ 按向下箭头选中要注释的区域 ------ delete/d
设置行号:set number
定位某一行:分号 + 空格 + 行号,如“; 12”
vim中使用/禁用鼠标:set mouse
:set mouse=a(打开鼠标功能)
:set mouse-=a(关闭鼠标功能)
mouse参数说明
// n 普通模式
// v 可视模式
// i 插入模式
// c 命令行模式
// h 在帮助文件里,以上所有模式
// a 以上所有模式
// r 跳过|lit-enter|提示
// A 在可是模式下自动选择
'mouse' 的缺省值为空,即不使用鼠标。通常你会用:
:set mouse=a
来开始使用鼠标 (这等价于设置 'mouse' 为 "nvich")。如果你只想在若干模式下或者在某两个任务上使用鼠标,你需要专注于那些模式对应的字母。例如:
:set mouse=nv
会使得鼠标在普通模式和可视模式下工作。
:set mouse=h
会使得鼠标只有在帮助文件里工作 (这样,可以用 "g<LeftMouse>" 来进行标签跳转)。鼠标能否在可视模式或者选择模式下开始选择,决定于 "selectmode" 选项包不包括 "mouse"。
解决鼠标模式右键不能粘贴问题
用鼠标和可视模式复制/粘贴 ('mouse' 选项必须设置,见上):
1. 在文本的第一个字符上按鼠标左键,移动鼠标到文本的最后一个字母,然后释放左键。这会启动可视模式并高亮选择区域。
2. 按 "y" 抽出可视文本到无名寄存器里。
3. 在要插入的位置上按鼠标左键。
4. 按鼠标中键(滚轮)。
Linux 命令行 快捷键
在操作时,有的时候从其他地方copy一段命令,发现前面多了东西或少了东西,要移动左右键到最前面,改完再移动到最后面,真是麻烦至极,幸好有快捷键,来解决一些这样的问题。
涉及在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
Have Fun
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)