郑州网站设计多少钱,广州档案馆建设网站,南昌快速优化排名,wordpress页面显示摘要# vim
Linux平台下的文本编辑器#xff1a; emacs、nano、gedit、vi、vim
vi#xff08;visual editor#xff09;编辑器通常被简称为vi#xff0c;它是Linux和Unix系统上最基本的文本编辑器#xff0c;类似于Windows 系统下的记事本。学会它后#xff0c;我们将在Linu…# vim
Linux平台下的文本编辑器 emacs、nano、gedit、vi、vim
vivisual editor编辑器通常被简称为vi它是Linux和Unix系统上最基本的文本编辑器类似于Windows 系统下的记事本。学会它后我们将在Linux 的世界里游刃有余。 为什么要学习vim 所有的Unix like系统都会内置vi文本编辑器其他的文本编辑器则不一定会存在 很多软件的编辑接口都会主动调用vi vim具有程序编辑的能力可以主动以字体颜色辨别语法的正确性方便程序设计 程序简单编辑速度快 vim是vi的升级版
# vim工作模式
vim工作在三种模式之下 命令模式是主要使用快捷键的模式是我们后面学习的重点。命令模式想要进入输入模式可以使用以下的方式 输入模式主要用于文本编辑和记事本类似输入数据就好。
末行模式编辑模式
:w 保存不退出:w 新文件名 文件另存为
:q 不保存退出
:wq 保存退出
:! 强制:q! 强制不保存退出用于修改文件之后不保存数据退出。:wq! 强制保存退出当文件的所有者或者root用户对文件没有写权限的时候强制写入数据使用
:x 在文件没有修改的情况下表示直接退出等价于:q在文件修改的情况下等价于:wq
# 1、命令行模式
问命令行可以干什么
答可以进行一些基本的复制、删除、跳转、撤销、移动等操作
命令含义备注yy复制光标所在行3yy表示复制3行p(小写p)光标所在行后面粘贴P(大写P)光标所在行前面粘贴gg光标快速跳到文件首行并且定位到首字符3gg表示快速跳到文件第3行行首字符G光标快速跳到文件尾行并且定位到首字符home跳转到行首Shift6 即 ^ 符号表示行首end跳转到行尾Shitf4 即 $ 符号表示行尾dd删除光标所在行3dd表示删除3行包括光标所在行d^从光标位置删至行首不包括光标位d$从光标位置删至行尾包括光标位与D作用相同dG删除光标所在行以及下面所有行dgg删除光标所在行以及上面所有行x(小写)删除光标所在字符后面一个字符3x删除3个字符类似于windows下的delete键X(大写)删除光标所在字符前面一个字符3X删除3个字符类似windows下的backspace键u撤销操作ctrlr 取消撤销
# 移动光标
# 1上下左右移动光标
h j k l
← ↓ ↑ →
2把光标移动到文件头或尾
gg 文件头
G 文件尾
3移动到行首或行尾
^ 行首
$ 行尾
4移动到指定行
:n 到第n行
# 删除或剪切
1删除字母
x 删除单个字母
nx 删除n个字母n是数字如果打算从光标位置删除连续的10个字母可以使用“10x”即可。
删除字母并不符合使用习惯我们更习惯在编辑模式中用“Backspace”键删除字母。
2删除整行或剪切
dd 删除单行
ndd 删除多行
:n1,n2d 删除指定范围的行删除整行或多行这是比较常用的删除方法。
这里的dd快捷键既是删除也是剪切。
删除内容放入了剪切板如果不粘贴就是删除如果粘贴就是剪切。粘贴方法如下p 粘贴到光标后
P(大) 粘贴到光标前:1,8d 删掉文本的1到8行
3从光标所在行删除到文件尾
dG 从光标所在行删除到文件尾
# 复制
yy 复制单行
nyy 复制多行复制之后的粘贴依然可以使用p键或P大键
# 撤销
u 撤销
ctrl r 反撤销“u”键能一直撤销到文件打开时的状态类似Windows下“ctrlz”键的作用。
“ctrlr”能一直反撤销到最后一次操作状态类似Windows下“ctrly”键的作用。
# 替换
r 替换光标所在处的字符
R 从光标所在处开始替换字符按ESC结束“r”键替换单一字符不用进入输入模式实际使用时比进入输入模式删除后再修改要方便。
# vim配置文件
这次末行模式参数设置多数需要在vim中才能生效。
设置参数含义:set nu:set number:set nonu显示与取消行号。:syntax onsyntax off是否依据语法显示相关的颜色帮助。在Vim中修改相关的配置文件或Shell脚本文件时如前面示例的脚本/etc/init.d/sshd默认会显示相应的颜色用来帮助排错。如果觉得颜色产生了干扰则可以取消此设置:set hlsearch:set nohlsearch设置是否将查找的字符串高亮显示。默认是set hlsearch高亮显示:set ruler:set noruler设置是否显示右下角的状态栏。默认是set ruler显示:set showmode:set noshowmode设置是否在左下角显示如”–INSERT–“之类的状态栏。默认是set showmode显示:set list:set nolist设置是否显示隐藏字符Tab键用”^I“表示回车键用”$“表示。默认是nolist显示。如果使用set list显示隐藏字符类似”cat -A 文件名“。
vim支持更多的设置参数可以通过“:set all”进行查看。
大家会发现这些设置参数都只是临时生效一旦关闭文件再打开又需要重新输入。如果想要永久生效需要手工建立vim的配置文件“~/.vimrc”,把你需要的参数写入配置文件就永久生效了。
补充Windows下回车符在Linux中是用“^M$”符。这样会导致Windows下编辑的程序脚本无法在Linux中执行。这时可以通过命令“dos2unix”把Windows格式转为Linux格式当然反过来“unix2dos”命令就是把Linux格式转为Windows格式。这两个命令默认没有安装需要手工安装才能使用。
全局配置 /etc/vimrc
单用户配置 ~/.vimrc
[rootxiaoshaozi ~]# vim ~/.vimrcset nu永久设置行号
echo set number /etc/vimrc
# 查找
/查找内容 从光标行向上查找
?查找内容 从光标行向下搜索
n 上一个
N 下一个搜索摸索
:/root n往下匹配;N往上匹配
# 替换
:1,10s/old/new/g 替换1到10行的所有old为new
:%s/old/new/g 替换整个文件的old为new替换模式
:%s/root/ROOT/ 全文搜索,替换每一行匹配到的第一个关键字
:%s/root/ROOT/g 全文搜索,替换每一行所有匹配的关键字
:%s/root/ROOT/gc 交互式替换
:%s/\/sbin\/nologin/\/bin\/bash/ \转义符
:%s#/sbin/nologin#/bin/bash#g 更换分隔符
:7s/shutdown/SHUTDOWN/g 只替换第7行的内容
替换字符串(注释#)前十行
:1,10s/^/#/g 注释1到10行
:1,10s/^#//g 取消注释
替换字符串注释//前十行
:1,10s/^/\/\//g 注释1到10行
:1,10s/^\/\///g 取消注释
# vim使用技巧
# 在vim中导入其他文件内容或命令结果
# 导入其他文件内容
:r 文件名 把文件内容导入光标位置:r /tmp/5.txt 在光标所在行下面读取/tmp/5.txt文件内容
:3r /tmp/5.txt 在当前文本的第3行后读取/tmp/5.txt文件
可以把其他文件的内容导入到光标所在位置
# 保存内容到文件内
地址定位
:1,5 w /tmp/5.txt #保存前5行内容到/tmp/5.txt
# 在vim中执行系统命令
:!命令 在vim中执行系统命令
这里只是在vim中执行系统命令但并不把系统命令的结果写入到文件中。主要用于在文件编辑中查看系统信息如时间。
:n! command 用命令的执行结果替换第n行内容
:nr !command 在第n行下面读取命令所执行的结果
# 导入命令结果
:r !命令 在vim中执行系统命令并吧命令结果导入光标所在行
在vim中执行系统命令并吧命令结果导入光标所在行。
# 设定快捷键
:map 快捷键 快捷键执行的命令 自定义快捷键
vim允许自定义快捷键常用的自定义快捷键如下
:map ^P I#ESC 按”ctrlp“时在行首加入注释
:map ^B ^x 按”ctrlb“时删除行首第一个字母删除注释
注意^P快捷键不能手工输入需要执行ctrlVP来定义或ctrlV,然后ctrlP。^B快捷键也一样
# 字符替换
:ab 源字符 替换为字符 字符替换
在vim编辑中有时候需要频繁输入某一个长字符串比如邮箱这时使用字符串替换能增加输入效率例如
:ab mymail shenchao163.com 当碰到“mymail”时转变为邮箱
注意“源字符”不应设置的太短否则有可能影响输入。
# 多文件打开
在vim中可以同时打开两个文件只要执行如下命令
[rootxiaoshaozi ~]# vim -o abc bcd
[rootxiaoshaozi ~]# vim -O abc bcd#-o 小写o会上下分屏打开两个文件
#-O 大写O会左右分屏打开两个文件切换窗口-o(小) ctrlw 上下键-O(大) ctrlw 左右键
这样可以同时打开两个文件方便操作。 # vim打开文件
vim 文件名 # 默认会进入命令行模式
vim n 文件名 # 打开指定的文件并且将光标移动到指定行
vim /关键字 文件名 # 打开指定的文件并且高亮显示关键词# rm -rf /tmp/*
# cp /etc/passwd /tmp/
[rootlocalhost ~]# vim /tmp/passwd
[rootlocalhost ~]# vim 5 /tmp/passwd
[rootlocalhost ~]# vim /shutdown /tmp/passwd
# 取消高亮
取消高亮
:noh no highlight
# 多窗口编辑问题
当两个终端同时打开或者意外结束文件时会产生一个.swap文件 交换文件
# 举例说明
你在两个终端同时打开/tmp/passwd文件会产生/tmp/.passwd.swp。这时有六个按钮可以使用
O(pen for Read-Only): 打开成只读文件。
E(dit): 用正常方式打开要编辑的文件并不会载入暂存文件的内容。这很容易出现两个用户相互改变对方的文件的问题。
R(ecover) 加载暂存文件的内容。
D(elete) 如果你确定这个暂存文件是没有用的则可以删除。
Q(uit) 不进行任何操作回到命令行。
A(bort) 忽略这个编辑行为和Q类似。需要注意的是
这个暂存文件不会因为你结束vim后自动删除必须要手动删除。否则每次打开对应的文件时都会出现这样的提示。
使用ctrl z接收当前终端vim编辑产生零时文件
使用fg命令重新进入继续编辑
# 可视化模式了解
按键ctrl v可视块或V可视行然后按下↑ ↓ ← →方向键来选中需要
复制的区块按下y 键进行复制不要按下yy最后按下p 键粘贴
退出可视模式按下Esc
# 快速注释
ctrl v
选中区块
I
输入文字
esc# 快速删除
ctrl v
选中区块
d
# 高频命令
命令行模式
# 复制一行
yyp
# 删除行
dd
# 撤回
u
# 取消撤回
ctrl r
# 文件末尾
G
# 文件首位
gg
# 行首
^
# 行末
$# 挂起shell
Ctrl z
fg重新进入vim# 快速注释
ctrl v
选中区块
I
输入文字
esc# 快速删除
ctrl v
选中区块
d# 选择复制
v
选中区
y
p底行模式
临时设置行号
:set number 或 :set nu搜索摸索
:/root n往下匹配;N往上匹配
:%s/root/ROOT/gc 交互式替换
取消高亮
:noh no highlight