Ubuntu安装命令:
sudo apt-get install vim
sudo apt-get install vim-gtk #支持vim和系统剪贴板的交互,用 "+p 代替Ctrl+v;用 "+y 代替Ctrl+c。
🌏 命令行模式:
普通模式下,vim编辑器会将按键解释成命令
按下 I、i、a、A、o、O
键进入插入模式
按下 :
键进入命令行模式
按下 v
键进入可视模式
esc
在插入模式下的功能等同于 Ctrl+[
组合键
⛺多窗口编辑
:sp [filename]
窗口切换: [Ctrl+w]+j\k
⟺ [Ctrl+w]+↑\↓
([ ]中的按键同时按下,松开后,再按第三个按键)
:q
未修改退出
:q!
取消所有的修改退出
:w filename
将文件保存到另一个文件中
:wq
保存修改退出
:e!
放弃对文件的所有修改,恢复文件到上次保存的位置。
🏆 :w !sudo tee %
强制修改只读文件 :!command
VIM 执行 Linux 命令
:%s/old/new/gc
整个文件的替换(substitute)且每次出现时都提示: %
表示作用域为全文,而不是当前行; g
全局替换,而不是仅替换第一个; c
每次出现时都提示。
/目标字符串
查找文本中匹配的目标字符串(默认是大小写敏感的),输入 n
寻找下一个匹配, N
寻找上一个匹配。
:saveas file
另存为 file
:version
查看vim版本号
:set enc=utf8
设置vim显示的编码方式,防止vim和Xshell编码方式不同导致中文乱码。
:set ic
编辑器将不区分大小写,默认不区分大小写。
:set noic
区分大小写的查询。
:set nu
该命令会显示行号。
:set nonu
该命令会取消行号。
:n
定位到 n 行。
:n1,n2d
n1 和 n2 指的是起始行号和结束行号,d 是删除关键字
文本替换
⭐:{作用范围}s/{目标}/{替换}/{替换选项} |
---|
作用范围 % 表示全文; n1,n2 表示在多行之间替换选项 g 表示作用范围内的全部替换,默认只替换第一个满足匹配的; c 表示每一个替换之前都进行询问 |
:n1,n2s/zempty/handsome/g
这里的 n1 和 n2 值得是行号,将会替换掉 n1 到 n2 的所有 zempty 为 handsome.
vim与系统剪贴版的交互 :用 {register}y
来拷贝到 {register}
中, 用 {register}p
来粘贴 {register}
中的内容。
使用前,使用如下命令,看看自己的计算机的vim版本( vim --version | grep clipboard)
如果出现 -clipboard
则说明系统的vim版本不支持与系统剪贴板的交互操作,需要采用如下的命令安装新的vim
sudo apt install vim-gtk
安装完成之后再利用代码检查一次,出现 +clipboard
,那么系统的vim没有问题。
用 "+y
代替 y
将选中的内容复制到系统剪贴板,效果和 Ctrl+C
一致。
用 "+p
代替 p
将剪贴板内容复制到指定位置,也可以用 Ctrl+V
。
如果想偷懒用 y
直接把内容复制到系统剪贴板,需要修改vim配置文件.vimrc( vim ~/.vimrc)。
然后,加入这行,set clipboard=unnamed,现在你的 y、d、x、p
已经能和 Ctrl+C
和 Ctrl+V
一个效果,并且能互相混用。
🍓 编辑模式
编辑模式下的自动补全功能:
ctrl+x → ctrl+n 以文件的内容文字作为关键字补齐
ctrl+x → ctrl+f 以当前目录中的文件名作为关键字补齐
ctrl+x → ctrl+o 以当前文件扩展名为语法,适用vim内置关键字补齐
🍐 普通模式
剪切、粘贴:vim在删除数据时,实际上是将数据保存到一个单独的寄存器,可以用 p
命令取回
- 复制命令是y (yw复制一个单词;y$ 从当前位置复制到行尾) ;
- 按下v键,进入可视模式,vim会高亮复制区域的文本,使用y命令复制到寄存器,用p命令取回
- 查找按下 / 键(从上往下查找)或?键( 从下往上查找),输入要查找的文本(支持正则表达式);使用 n 键,查找下一个
- u 撤销一步操作
- ctrl + r 恢复(可撤销掉撤销操作)
- d$ 由光标所在处删除直到该行的结尾
- dG 由光标所在处删除直到工作缓存区结尾的内容
- dd 删除当前行
- x 删除光标所在处字符(常用于取消配置文件的注释)
- dtc 删除当前行直到下一个字符 "c"所出现位置之间的内容
- dw 由光标所在处删除直到下一个单词开头
- o 在本行之后新增一行,并进入插入模式
- ra 将当前字符替换为a,当期字符即光标所在字符(r+char)
- Rtext 用text覆盖当前位置的数据,直到按下ESC键
- :%s/^/ 要添加的内容 在每行行首添加相同的内容
- :%s/$/ 要添加的内容 在每行行尾添加相同的内容
- :8,15s/^/# 在8~15行行首添加#,进行注释,一般之前要使用:set nu,设置显示行号
🏆 光标移动与复制
文件首尾移动
gg
或 :0
移动光标到当前文件的第一行
GG
或 :$
移动光标到当前文件的最后一行
屏幕级移动
H
移动光标到屏幕的第一行
M
移动光标到屏幕的中间一行
L
移动光标到屏幕的最后一行
翻页
Ctrl + f
向前滚动一页
Ctrl + b
向后滚动一页
Ctrl + u
向前滚动半页
Ctrl + d
向后滚动半页
行间移动
nG
移动光标到当前文件的第n行
:n
移动光标到当前文件的第n行 (同上)
复制:y(ank)
y
用v
命令选中文本后,用y
进行复制yy
复制当前行,然后用p进行粘贴5yy
复制从当前行开始的5行(nyy
多行复制)yw
复制当前单词y$
从当前位置复制到行尾v + 方向键(hjkl)
选中内容 +d
剪切 +p
粘贴(h、l是行内左右移动,j、k是行间下上移动)
请记住这几个快捷键 h,j,k,l 这几个按键主要是用来快速移动光标的,h 是向左移动光标,l 是向右移动光标,j 是向下移动光标,k 是向上移动光标
⛲ 配置文件
VIM 有一个配置文件,在 linux 系统中,该配置文件是 .vimrc
, 该文件位于 ~
目录下面,是一个隐藏文件,如果该文件不存在可以手动创建一个。 .vimrc
可以有很多配置,例如显示行号,快捷键配置,插件配置等等。VIM 很多个性化的设置都离不开这个配置文件。 ~/.vimrc
中的配置只对当前用户可用; /etc/vim/vimrc
中的配置对所有用户可用 .vimrc
有几个常用的配置,如下(在vimrc中,双引号开头的行,将被当作注释忽略。各配置参数前面可以添加冒号(:),也可以省略,两种写法都可以):
"将ESC键映射为两次j键
inoremap jj <Esc>
"Vim 编辑器里默认是不启用鼠标的,通过此设置即可启动鼠标,详情请参照笔记Vim中使用鼠标功能。
set mouse=nv
set selection=exclusive
set selectmode=mouse,key
"设置编码格式
"encoding 选项用于缓存的文本、寄存器、Vim 脚本文件等;
"fileencoding 选项是 Vim 写入文件时采用的编码类型;
"termencoding 选项表示输出到终端时采用的编码类型。
set encoding=utf-8
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
"语法高亮
syntax on
⛪ screen 命令
screen -S me 🍍#新建一个shell
screen -r me #reattach a shell
screen -d me #退出screen me是一个screen名称, detach a shell
screen -S me -X quit 🍍#销毁一个会话并退出
screen -wipe #清除被杀掉的会话
🍍常用快捷键
⛺ Ctrl+a d
: 效果与screen -d相同,卸载当前会话
Ctrl+a c
:在当前screen会话中创建窗口
Ctrl+a w
:显示当前会话中的窗口列表,显示在标题栏中
Ctrl+a n
:切换到下一个窗口
Ctrl+a p
:切换到上一个窗口
Ctrl+a 0-9
:在第0个窗口和第9个窗口之间切换
说明:这里的快捷键由三个键组成,如 Ctrl+a c
,你可以按住 Ctrl
键,再依次按下 a
和 c
。也可以先按一次 Ctrl+a
,再按一次 Ctrl+c
。两种方法都是可行的。