《鸟哥的linux私房菜 基础篇》第十章读书笔记---vim程序编辑器

VIM程序编辑器
如果想要多次移动的话,例如向下移动30行,可以使用“30j”或“30向下的箭头”。

移动光标:
ctrl+d 屏幕向下移动半页
ctrl+u 屏幕向上移动半页

+  光标移动到非空格的下一行
 -  光标移动到非空格的上一行

n<space> 按下一个数字n,比如20,然后按下空格键,光标就会想右移动这一行的n个字符

0或功能键[home]  移动到这一行的最前面字符处
$或功能键[end]     移动到这一行的最后面字符处

H  光标移动到这个屏幕的最上方那一行的第一个字符
M  光标移动到这个屏幕的中央那一行的第一个字符
L  光标移动到这个屏幕的最下方那一行的第一个字符

G           移动到这个文件的最后一行
nG或:n   n为数字,移动到这个文件的第n行。也可以用:n
gg          移动到这个文件的第一行,相当于1G
N[enter]  n为数字,光标向下移动n行

查找与替换:
/word    向下查找一个名称为word的字符串
?word    向上查找一个名称为word的字符串
n           字母n,表示重复前一个查找的操作
N          大写N,和n相反,表示“反向”进行前一个查找操作

:n1,n2s/word1/word2/g   :n1,n2为数字,在第n1行与n2行之间寻找word1字符串,并将该字符串替换为word2.例如,在100到200行之间查找vbird并替换成VBIRD,则为:100,200s/vbird/VBIRD/g
:1,$s/word1/word2/g      : 从第一行到最后一行查找word1,并将该字符串替换为word2
:1,$s/word1/word2/gc     :从第一行到最后一行查找word1,并将字符串替换为word2,且替换前显示提示字符给用户确认是否替换

删除,复制与粘贴:
nx      n为数字,连续向后删除n个字符。连续删除10个字符,10x
dd      删除光标所在那一整行
ndd    n为数字,删除光标所在的向下n行。
d1G    删除光标所在到第一行的数据
dG      删除从光标所在到最后一行的所有数据
d$      删除从光标所在处到改行的最后一个字符
d0      d和数字0,删除从光标所在处到该行的最前面的一个字符

yy      复制光标所在的那一行
nyy    n为数字,复制光标所在的向下n行
y1G,yG,y$,y0  将删除部分的d1G,dG,d$,d0中的d改成y,就变成了相应的赋值

p和P   小写p为将已复制的数据在光标下一行粘贴,大写P则为粘贴在光标上一行

Undo与Redo:
u                        复原前一个操作,undo
ctrl+r                  重做上一个操作,redo
   .                      小数点,重复上一个操作
N <command>    重复某个命令command N次

切换到编辑模式:
i, I    进入插入模式。i为从目前光标所在处插入,I为在目前所在行的第一个非空格符处开始插入
a,A   进入插入模式。a为从目前光标所在的下一个字符处开始插入,A从光标所在行的最后一个字符处开始插入
o,O   进入插入模式。小写o为在目前光标所在的下一行插入新的一行;O为在目前光标所在处的上一行插入新的一行
r,R    进入替换模式。r只会替换光标的那个字符一次,r只有效一次。R会一直替换光标所在的文字,直到按下esc键为止。R一直有效,直到按下esc 

命令行的保存,离开等
:w, :w!  保存,加!为强制保存(为只读时),但还是跟访问权限有关
:q, :q!   退出vim/vi,!强制退出,不保存
:wq       保存并退出
ZZ         若文件没有更动,则不保存离开;若文件已被更动,则保存后离开

:w [filename]   另存为filename
:r [filename]    在编辑数据时,读入另一个文件filename的数据,,将其内容加入到光标所在行后面
:n1,n2,w [filename]   将n1到n2行的内容保存成filename的文件

:! command   暂时离开vi到命令行模式下执行command的显示结果。例如,“:! ls /home”即可再vi当中查看/home下面以ls输出的文件信息


在用vim编辑时,它会在被编辑的文件的目录下再新建一个名为 .filename.swp的文件。
vim的不正常中断,导致暂存盘无法通过正常流程来结束,所以暂存文件就不会消失,而继续保留下来‘

在用R(ecover)选项后,并不会删除那个swp文件,离开vim后还要自行删除。

块选择(Visual Block)
v          小写v,字符选择,会将光标经过的地方反白选择
V          大写V,行选择, 会将光标经过的地方反白选择
ctrl+v    块选择,可以用长方形的方式选择数据
y          将反白部分复制起来
d          将反白部分删除

粘贴的时候是以块来粘贴的,即粘贴在某个“块的范围”内,而不是以行为单位来处理你的整份文件。

多文件编辑
vim后同时接好几个文件可以同时打开。
:n       编辑下一个文件
:N       编辑上一个文件
:files   列出目前这个vim的打开的所有文件

多窗口功能
:sp {filename}    加filename则是在新窗口中启动另一个文件,直接输入:sp时,出现的则是同一文件在两个窗口间。
ctrl+w+向上箭头,ctrl+w+向下箭头   在两个窗口之间移动
ctrl+w+q  即为:q,结束,离开

vim会主动将你曾经做过的行为记录下来,好让你下次可以轻松作业,这个记录操作的文件是: ~/.viminfo

vim的环境设置参数有很多,如果想知道目前的设置值,可以在一般模式时输入 :set all来查阅。不过设置选项很多

:set nu       显示行号,设置后,会在每一行的前缀显示改行的行号
:set nonu   取消行号

:set autoindent  设置自动缩排
:set noautoindent  不缩排

:set ruler  显示/不显示右下角的状态栏说明

:syntax on
:syntax off  是否依据程序相关语法显示不同颜色

为了避免每次使用vim时都重新设置一次参数,我们可以通过配置文件来直接规定。整体vim的设置值一般是放置在/etc/vimrc文件中,但不建议修改它。可以通过修改~/.vimrc文件,不过它默认不存在,需要自己创建,里面写上所希望的设置值。

在DOS中使用的断行符为^M$,称为CR与LF两个符号。而在linux下面,则是仅有LF($)这个断行符
在shell里面,这样的CR在里面就会出现错误
将dos格式转换成linux的:
dos2UNIX [-kn] file [newfile]
UNIX2dos [-kn] file [newfile]
-k : 保留该文件原本的mtime时间格式(不更新文件上次内容经过修订的时间)
-n : 保留原本的旧文件,将转换后的内容输出到新文件

语系编码转换:
iconv --list
iconv -f 原本编码 -t 新编码 filename [-o newfile]
--list : 列出iconv支持的语系数据
-f     :from, 后接原本的编码格式
-t     :  to, 即后来的新编码的格式
-o file : 如果要保留原本的文件,那么使用-o 新文件名,可以建立新编码文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值