第三单元 vim的使用

vim 的使用

 

(1)命令模式
(2)插入模式
(3)退出模式

命令模式

1.vim帮助
方法1:
vim
:help

方法2
vimtutor 退出方法(和退出vim的方法相同)


2.vim工作参数设定
临时设定
:set 参数信息
:set nu 显示参数信息时显示出行号


:set nonu 不显示行号
:set mouse=a 启用鼠标
:set cursorline 突出显示当前行号
注意:
    以上设定方式在vim退出后会还原默认

#永久设定
vim /etc/vimrc
set nu  显示vim文件的行号
set mouse=a 启用鼠标
set cursorline 突出显示当前行号
set nocompatible 关闭vi兼容模式
注意:
    以上操作必须用root用户才能完成

3.字符管理
y    复制
yl    复制一个字母
y3l     复制三个字母
yw    复制一个单词
y3w    复制三个单词
yy    复制一整行
y3y    复制三行    

c    剪切
cl      剪切一个字母
c3l    剪切三个字母
cw      剪切一个单词
c3w     剪切三个单词
cc      剪切一整行
c3c     剪切三行
注意
    当用c做剪切动作后,vim会进入插入模式
    如果需要粘贴那么要按<ESC>退出插入模式
    然后按<P>粘贴


d   删除
dl     同上
d3l
dw
d3w
dd
d3d

p    粘贴
u    撤销
ctrl+r   恢复

4 可视模式

  • gv 重选上次的高亮选区

  • o 切换高亮选区的活动端

  • 当实用命令.重复对高亮选区所做的修改时,此修改会重复作用域相同范围的文本

  • 在windows下使用C-q进入列块编辑模式,而在linux下使用C-v进入列块编辑模式,在emacs的evil-mode下,也使用C-v进入列块模式


ctrl+v    进入可视化模式

可视化模式的批量添加
    ctrl+v 进入可视化模式

    选中要添加字符所在列(用键盘上下左右来操作)
    按"I"进入插入模式(注意是大写I)
    写入字符
    按<ESC>批量添加字符出现

#5.字符的替换
:%s/源字符/替换后字符        每一行出现的第一个关键字
:%s/源字符/替换后字符/g        全文替换,s所有行,g表示所有列
:3,5s/源字符/替换后字符/g    替换第三行到第五行的关键字
:/lp/,/halt/s/sbin/hello/g    图还lp字符和halt字符之间的所有关进字

#6.在vim中编写多个文件
vim file
:sp file1

ctrl+w  上|下|左|右        光标在窗口之间的移动

7.光标移动及字符搜索
光标的移动
:数字        光标移动到指定的行
<HOME>        光标移动到行首
<END>        光标移动到行尾
G        光标移动到最后一行
gg        光标移动到第一行

#搜索字符
/关键字


n    #向下匹配
N    #向上匹配


插入模式

 

i        光标所在位置插入
I        光标所在行的行首插入
A        光标所在行行尾插入
a        光标所在字符的下个字符插入
s        删除光标所在字符插入
S        删除光标所在行插入
o        光标所在行的下一行插入
O        ##光标所在行的上一行插入

退出模式
:q    退出,在打开文件后没有对文件做任何修改时可使用


:wq    退出保存,在对文件修改后并保存内容时使用


:q!    #强制退出,在对文件做修改后要放弃修改时使用


:wq!    强制退出保存,在对属于自己的文件或你时root用户时使用

linux中管理输入输出
输出重定向
>        重定向正确输出
2>        重定向错误输出
&>        重定向所有输出
"注意:重定向动作会覆盖源文件内容"

例子:
用student用户登陆系统
find /etc/ -name passwd     ##此命令在student用户下执行因为权限问题会报错

find /etc/ -name passwd >  file

find /etc/ -name passwd 2> file

find /etc/ -name passwd &> file

输出追加
"追加会把定向的输出放到原文件最后不会覆盖原文件"
>>
2>>
&>>

find /etc -name passwd >>  file
find /etc -name passwd 2>> file.err
find /etc -name passwd &>> file.all

#输入管理
<<EOF
内容
EOF

cat > westos <<EOF
hello
westos
world
EOF

cat westos
hello
westos
world


vim test.sh
#!/bin/bash
passwd <<EOF
student
2018lee
2018lee
EOF


sh test.sh

管道
|    把第一条命令的正确输出变成第二条命令的输入
2>&1    将编号位2的错误输出转换成编号为1
tee    将输出复制一份到指定位置

ls /bin | wc -l        统计/bin中有多少文件

find /etc -name passwd 2>&1 | wc -l

find /etc/  -name passwd 2>&1 | tee file |wc -l
cat file

猜你喜欢

转载自blog.csdn.net/qq_43309149/article/details/83001814