linux心得笔记

vim:

vimtutor  查看vim帮助
       基本 移动
h l k j 左/右移动一个字符:上/下 移动一行
b w  向左/右 移动一个单词
ge e 向 左/右 移动一个单词 (光标在词尾)
{ }  移动到前 一个/后一个 段落开头
( ) 移动到前一个/后一个 句子开头
0 gm  移动到行首/行正中
^ $   移动到行 第一个非空白字符/行尾
nG ngg  移动到第n行,默认到尾行/首行
n% 移动到文件的n百分比处
n|  移动到当前行的第n列
nH nL  移动到窗口 顶端/底部 第n行
 % 匹配下一个 项目 (括号、方括号等.....)
 M  移动到窗口的中间行
 
          编辑修改
i a  在光标 前/后  插入文本
I A  在 行首/行尾  插入文本
gl  在第一列 插入文本
o O  在光标的 下方/上方 插入新行
rc  把光标下的字符换成c
gro  类似r,但替换的是虚拟字符
R  进入替换模式
gR   类似R, 但替换的是虚拟字符
cm  更改动作m跨越的文本
CC or S  更改当前行的内容
C   更改光标到行尾的文本
s  更改一个字符并进入插入模式
~  切换当前字符大小写,同时光标前移
g~m  切换动作m跨越文本的大小写
gum gUm  小写/大写 动作跨越的文本
<m >m  左移/右移  动作m 跨越的行
n<< n>> 将n行 左移/右移 一个缩进位

       删除
x  X   删除光标 后/前 的字符
dm  删除动作m 跨越的文本
dd D  删除动作m 跨越的文本
J gJ   连接两行 删除缩进、插入空格/ 直接连接
:rd  删除范围r 包括的行
:rdx  删除范围r包括的行寄存器x

       插入模式
^Vc ^Vn  插入字符 c 的本义/十进制值n
^A     插入最近插入的文本
^@    插入最近插入的文本,并退出插入模式
^Rx    原样插入寄存器x的内容
^N ^P  补全关键字并作 正向/反向 查找
^W   删除光标前的单词
^U   删除当前行光标前所有输入的字符
^D ^T  左移/ 右移 一个缩进位
^KC1C2  输入C1C2代表的二合字母
^Oc   在临时命令模式执行命令c
 ^X ^E   向上滚动一行
 ^X ^Y    向下滚动一行
 <esc> ^[   结束插入模式,回到命令模式
 
              复制
”x   指定下次删除、抽出和放置使用寄存器x
:rcg  显示所有寄存器的内容
:reg x 显示寄存器x 的内容
ym 抽出动作m 跨越的文本
yy or Y 抽出整行
p P  放置寄存器内容到光标 之后/之前
]p [P  类似“p” “P”,但调整当前行的缩进
gp gP   类似“p”“P” ,光标停留在新文本之后

          复杂改动
g?m   对动作m 跨越的文本做 rot13 编码
n^A n^X  光标之上或之后的数值或者字母 +n/-n
gqm  格式化动作m跨越的所有行
:rce W  将范围r中的行依据 宽度w 居中对齐
:rce i  将范围r中的行靠左对齐,缩进i列
:rri w  将范围r中的行依据宽度w靠右对齐
!mc  将动作m跨越的行用命令c过滤
n!!c   将n行用命令c 过滤
:r!c   将范围r中的行用命令c过滤

       可视模式
v  V  以字符/行 方式开始(结束) 高亮
^V   以列块 方式开始(结束)高亮
o   交换高亮区域的开始处和光标位置
gv  使用上一次的可视区域开始高亮
aw  as  ap   选择“一个单词“一个句子”/“一个段落”
ab aB  选择“一个块”()/“一个大块”{}
         撤消,重做
u U  撤消最近的改动/恢复最近被改动的行
. ^R  重复最近的改动/重做最近撤消的改动
n.  重复最近的改动n次

         寄存器
qc  qC   记录键入的字符,存入/添加到寄存器c
q       停止记录
@c    执行寄存器c 的内容
@@   重复上次的@c 操作
:@c  将寄存器c的内容当作Ex 命令来执行
:rg/p/c  在范围r 中找到匹配内容p时执行 Ex 命令c

         复合移动
- +  上移/下移 一行 ,至第一个非空白字符
B W  向前/后 移动一个字串
gE E    向前/后 移动一个额字串(光标在末尾)
n    下移动n-1行,至第一个非空白字符
gO   移动到屏幕行第一个字符
g^  g$  移动到屏幕行 第一个非空白字符/最后一个字符
gk  gj   上移 /下移 一个屏幕行
fc  Fc  移动到 后一个/前一个 字符c 处
tc Tc  移动到 后一个/前一个 字符c之前
;, 正向/反向重复上次“f”、“F”、“t”或“T”命令
[[ ]]  向后/向前 一小节,置于小节的开始
[{ ]}   向后/向前 至未闭合的‘{’/‘}’
[m ]m  向后/向前 至java method的开始
[# ]#  向后/向前 至未闭合的#if,#else,#endif
[* ]*  向后/向前 至注释的开始/结束/* */

       查找替换
/s ?s  向前/向后 查找s
/s/o  ?s/o  向前/向后 查找s , 光标偏移量o
n or/  向前重复上次查找
N or?  向后 重复 上次查找
# *  向后/向前 查找光标下的标识符
g# g*  向“#”/“*”,但也查找部分匹配
gd  gD  跳转到光标下标识符的局部/全局 声明
:rs/f/t/x   将范围r中 的f 替换成t   选项x:q- 所有匹配项,c-确认替换
:rs x   在新的范围r 中以选项x 重复上一替换

 软硬链接区别

软链接的原始文件要写相对路径 一定写的是相当于软链接的路径 而不是相当于当前工作目录。
 硬链接和软链接的区别
 1、本质:硬链接:同一个多个名字,软连接不同文件
 2、跨分区(硬链接不支持跨分区,软连接支持跨分区)
 3、目录(硬链接不支持目录创建,软链接支持目录创建)
 4、相互关系硬链接相互之间是平等独立的关系,毫不相干,你删了一个硬链接 只是说少了个名,不影响别人,大不了链接数减一。而软连接
    原始文件和软连接有依赖关系,你把原始文件删了,与软连接就失效了,它是有依赖关系的。
 5、inode 号 硬链接所有的文件inode是相等的。而软连接不一样。
 6、链接数的增长问题和减少问题;创建硬链接,链接数会增长,软连接不会增长。删除硬链接少一个连接数。软连接删的话就相当于少 了一个文件
 7、路径问题;路径如果不用原始文件路径,原始文件的路径。软连接的原始文件路径,要相对的是软链接的相对路径,而不是相对于当前目录。 而硬链接的时候,硬链接创建的可不是相对于软链接的相对路径,他相对的是当前的工作目录。
 8、文件类型不一样,软连接表现为L 是软连接。 硬链接原来是啥就是啥,原来普通文件就是普通文件。 颜色也不一样。
 9、(命令) ln  一个 加s  一个不加s

 具体就这些吧,期待我的作品话,就等我下周更新哟。

原文地址:https://www.cnblogs.com/guopeilin/p/10886718.html