前言:这些是vim最常用的命令!记住了会提高效率的《Mr.Robot》

----------------------------------------------------

 vim需要的常用命令:

d G     全部删除

i        当前编辑

o       新起一行编辑

gg             行首

G               行尾

10 gg        跳转到第十行

10  回车     向下跳转10行    

u  撤销

ctrl  r  反撤销

yy  复制

p  粘贴

wq  保存退出

x   保存退出

搜索 /

替换

5,10s/111/222/g        

%s/xiang/ling/g

注释所有的行:   :%s/^/#/g

命令行模式 :

:set nu(显示行号) 

:set paste(粘贴时格式对其) 

:set autoindent(自动缩进)

/etc/vimrc 全局,所有用户,永久有效

 ~/.vimrc  对自己,永久有效

    

可以将下面的命令,写到全局配置中

  

自动缩进 :set autoindent   / set cindent

设置高亮 :syntax on

设置行号 :set nu

自动加入文件头信息

粘贴时自动对齐:set paste  取消自动对齐  set noai 

---------------------------------------------------------------详细

Linux:使用文本文件来保持配置文件

文本编辑器:ASCII文件

emacs vi

vi:Visual Interface

全屏文本编辑,nano

模式化的编辑器

moduler

vim :vi improved

vi的模式:

编辑模式:键盘操作通常被解析为编辑命令:

输入模式:

末行模式:vim的内置的命令行接口,执行vim内置命令

编辑模式-->输入模式

i:当前光标处输入内容

I:在当前光标所在行的行首

a:在当前光标所在处的后面

A:在当前光标所在行的行尾输入

o:在光标所在行的下方新增一行空白行

O:在光标所在行的上方新增一行空白行

输入模式-->编辑模式

ESC

编辑模式-->末行模式

末行模式-->编辑模式

ESC,ESC

vi命令的使用格式

vim [options] /path/to/file

退出:

:q!强制退出,不保存并退出

:wq 保存修改并退出

:x,保存并退出

编辑模式:ZZ,保存退出

打开:

多文件跳转

:next 下一个

:prev  上一个

:first 第一个

:last 最后一个

:qall 退出所有的文件

:wqall:修改并退出多个文件

分隔窗口打开多个文件

-o:水平分隔

ctrl+w,左右箭头

-O:垂直分隔

ctrl+W,上下箭头

+#:打开文件后在第#号行首

+:打开文件后在最后一行

光标移动:

单字符移动:

h:左

l:右

j:下

k:上

可以和数字组合

单词间移动:

w:调至下一个单词的词首

b:当前或前一个的词首

e:当前或下一个词的词尾

行内移动:

0:绝对行首

^:第一个非空白字符

$:绝对行尾

句子间移动:

):上一句

(: 下一句

段落间移动:

}:上一段

{:下一段

行间移动:

#G:第几行

G:最后一行

编辑操作:

x:删除光标所在处的字符

#x:删除光标所在处向后的#个字符

r:替换光标所在处的字符

d:删除命令

结果光标跳转命令使用

%:全部

dd:删除一行

#dd:删除所在行后的#行

末行模式:范围定界

start,end:可以使用绝对定界,也可以使用相对定界

.:表示当前行

$:最后一行

$-2:倒数第3行

/pat1/,/pat2/:起始处为光标所在行

c:改变

跟d一样操作

y:yank,复制

跟d一样操作

p:paste 粘贴

复制或删除的是整行

p:当前行的下一行

P:当前行的上一行

复制或删除的为非整行

p:粘贴在光标所在字符的后面

P: 粘贴在光标所在字符的前面

撤销编辑

u:undo

#u:最近50次操作

撤销此前的撤销操作

ctrl+r:

重复执行此前的命令:

.

翻屏:

ctrl+f:向文件尾部翻一屏

ctrl+b:向文件首部翻一屏

ctrl+d:向文件尾部翻半屏

ctrl+u:向文件首部翻半屏

Enter:下一行

k :上一行

查找:

/keyword

?keyword

n:

N:

支持正则表达式

:set nohlsearch 关闭高亮显示,对当前shell有效

vim的可视化模式

编辑模式:

v:按照光标走过的区域选择

V:选择矩形块

vim可视化模式:

v: 按光标走过的区域选择

V: 选择矩形块

打开多个文件,分窗口:

vim -o

vim -O

Ctrl+w, 上下箭头

分割当前窗口:

Ctrl+w, s

Ctrl+w, v

窗口属性的定义:

:set nu

:set nonu

:set ai 自动缩进

:set noai

:set ic

:set noic

显示对应的括号

:set sm (show match)

:set nosm

语法高亮:

:syntax on

:syntax off

搜索高亮:

:set hlsearch

:set nohlsearch

vim的配置文件:

全局:/etc/vimrc

个人:~/.vimrc

查找替换:

:地址定界s/查找模式/替换为的内容/gi

g:全局替换

i:不区分大小写

:地址定界s@查找模式@替换为的内容@gi

&:用于在替换为的内容部分中引用前面匹配到的所有内容

练习:

1.复制/etc/grup.conf至/tmp目录,删除/tmp/grub.conf文件中行首的空白符

:%s\^[[:space:]]\{1,\}\\g

2.复制/etc/rc.d/rc.sysinit至/tmp目录。将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行,行首加#号

:%s@^[[:space:]]\{1,\}.*@#&@g

3.删除/tmp/rc.sysinit文件中以#开头且后面跟了至少一个空白字符的行的行首的#和空白符

1,%s@^#[[:space:]]\{1,\}@@g

4.为/tmp/grub。conf文件中的前三行的行首加#号

1,3s@^@#@g

5.将/etc/yum.repos.d/CentOS-Media.repo中enable=0一行最后的0改为1;

%@\(enabled=\)[0-9]@\11@g

bash知识点:文件测试

[]

[[]]

test

单目测试:

-e file :测试文件是否存在

-a file :测试文件是否存在

-f file: 测试是否为普通文件

-d 目录: 测试是否为目录文件

-b somefile : 测试文件是否存在并且是否为一个块设备文件

-c somefile : 测试文件是否存在并且是否为一个字符设备文件

-h|-L somefile : 测试文件是否存在并且是否为符号链接文件

-p somefile : 测试文件是否存在并且是否为管道文件:

-S somefile : 测试文件是否存在并且是否为套接字文件:

-r somefile:  测试其有效用户是否对此文件有读取权限

-w somefile:  测试其有效用户是否对此文件有写权限

-x somefile:  测试其有效用户是否对此文件有执行权限

-s somefile:  测试文件是否存在并且不空

双目测试:

file1 -nt file2 :测试file1是否比file2更 新一些

file1 -ot file2 :测试file1是否比file2更 老一些

在脚本中使用source命令倒入别的文件

[ -r 配置文件 ] && cource 配置文件

bash的知识点:位置参数轮替

shift

#!/bin/bash

sum=0

for i in `seq 1 $#`;do

let sum+=$1

shift

done

echo $sum

~