vim操作

vim操作

一、个人常用配置命令

set nu						设置行号
set tabstop=4				设置tab为4空格距
set shiftwidth=4			设置shift+>为4空格距
set autoindent				设置自动缩进
inoremap ' ''<ESC>i			设置引号自动补全
set termencoding=utf-8     设置屏幕显示编码
set encoding=utf-8         设置vim内部(寄存器、脚本)使用编码
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936   设置自动解码格式

二、配置文件

/etc/vim/vimrc		系统配置文件
~/.vimrc			用户配置文件
~/.viminfo			行为记录文件(主动记录行为以便下次轻松操作)

三、配置参数

set nu					设置行号
set nonu				取消设置行号
set hlsearch			设置查找到的字符串高亮显示
set nohlsearch			取消设置查找到的字符串高亮显示
set autoindent			设置自动缩进
set noautoindent		取消设置自动缩进
set backup				设置自动备份(当改动文件时,原文件被另存为当前目录下"文件名~"的文件)
set nobackup			取消设置自动备份
set ruler				设置显示右下角状态栏
set showmode			设置显示左下角状态栏
set backspace=[0 1 2]	设置进入编辑模式后backspace键是否能删除任意字符(2:删除任意字符;0/1:仅能删除刚才输入的字符)
set all					显示目前所有的环境参数设置
set						显示与系统默认值不相同的设置参数(即:自己改动过的设置参数)
syntax on				设置依据程序相关语法显示不同颜色
syntax off				取消设置依据程序相关语法显示不同颜色
set bg=dark(light)		dark与light为两种不同色调
set tabstop=4			设置tab键为4个空格距

四、暂存文件

对文件的操作并不是直接进行,而是在当前目录创建名为.filename.swp的暂存文件
暂存文件警告信息:
	[O]pen Reader-Only		只读方式打开
	(E)dit anyway			正常方式打开要编辑的文件,并不载入暂存文件
	(R)ecover				加载暂存文件内容
	(D)elete it				删除暂存文件并打开原文件
	(Q)uit					离开
	(A)bort					忽略(离开)

五、模式切换

一般模式->编辑模式
	i		当前光标所在字符前
	I		当前光标所在行前
	a		当前光标所在字符后
	A		当前光标所在行后
	o		当前光标所在行下一行插入新行
	O		当前光标所在行上一行插入新行
	r		替换当前光标所在字符
	R		一直替换当前光标所在字符,指导esc结束
编辑模式->一般模式
	esc
一般模式->命令行模式
	:、/、?

六、常用命令操作

多窗口

	:sp [filename]			水平打开文件
	:vsp [filename]			垂直打开文件
	ctrl+w+j				将光标移动到下一个窗口
	ctrl+w+k				将光标移动到上一个窗口

多文件

	vim filename1 filename2 ...		同时打开多个文件(默认显示第一个文件)
	:n								编辑下一个文件
	:N								编辑上一个文件
	:files							列出当前打开的所有文件
	:qa								退出所有文件

块选择

	v				选择字符
	V				选择行
	ctrl+v			选择列

查找与替换

	/string					向下查找字符串
	?string					向上查找字符串
	n						继续向下查找
	N						继续向上查找
	:n1,n2s/str1/str2/g		在n1行与n2行间,用str2替换str1
	:0,$s/str1/str2/gc		在n1行与n2行间,用str2替换str1并询问是否替换

打开文件到指定行

	vim filename +lineNum		打开文件光标定位到lineNum行首
	vim filename +				打开文件光标定位到文件结束行

七、常用命令操作

恢复

	u				恢复前一个操作
	ctrl+r			重新执行上一个操作
	.				重复前一个操作

删除

	x				向后删除一个字符
	nx				向后删除n个字符
	X				向前删除一个字符
	nX				向前删除n个字符
	d$				删除当前位置到行末最后一个字符
	d0				删除当前位置到行首第一个字符
	dd				删除当前行
	ndd				删除当前行向下n行
	dnG				删除当前行到第n行所有行
	dG				删除当前行到最后一行的所有行

复制

	y0				复制当前光标到行首所有数据
	y$				复制当前光标到行尾所有数据
	yy				复制当前行
	nyy				复制当前行向下n行
	ynG				复制当前行到第n行的所有行
	yG				复制当前行到最后一行的所有行

粘贴

	p				将数据粘贴到光标下一行
	P				将数据粘贴到光标上一行
	J				将当前行与下一行合并成同一行

八、光标移动

字符移动

	h/左键			光标向左移动一个字符
	nh/n左键			光标向左移动n个字符
	j/下键			光标向下移动一个字符
	k/上键			光标向上移动一个字符
	l/右键			光标向右移动一个字符

单词移动

	w			光标移动到下一个单词词首
	nw			光标移动到第n个单词词首
	b			光标移动到下一个单词词尾
	e			光标移动到上一个单词词尾

句子移动

	)			光标移动到下一句
	n)			光标移动到下n句
	(			光标移动到上一句

段落移动

	}			光标移动到下一个段尾
	n}			光标移动到下n个段尾
	{			光标移动到上一个段首

行移动

	+			光标移动到非空格的下一行
	-			光标移动到非空格的上一行
	0			光标移动到行首
	^			光标移动到行第一个字符处
	$			光标移动到行尾
	H			光标移动到屏幕第一行行首
	M			光标移动到屏幕中间行行首
	L			光标移动到屏幕最下行行首

文件移动

	gg			光标移动到文件第一行行首
	nG			光标移动到文件第n行行首
	G			光标移动到文件最末行行首

屏幕移动

	ctrl+f			屏幕向下移动一页
	ctrl+d			屏幕向上移动半页
	ctrl+b			屏幕向上移动一页
	ctrl+u			屏幕向上移动半页

标记

	m+char			在当前光标位置作出标记,标记名为char
	'char			跳转到标记char处
	:delmark char	删除指定标记
	:marks			列出所有标记

九、保存与离开

:w					保存
:wa					保存打开的所有文件
:w!					强制保存
:q					离开
:q!					强制离开
:wq					保存离开
:wq!				强制保存离开
:w filename			另存为
:r filename			将文件内容加载到光标所在行下
:n1,n2 w filename	将n1行和n2行内容另存为
:!cmd				暂时离开wim执行cmd命令

十、编码问题

查看文件编码格式:vim中使用set enconding
1、编码问题造成的原因
1)Linux系统末日支持的语系数据(/etc/sysconfig/i18n文件有关)
2)终端接口(bash)的语系(LANG有关)
3)文件原本的编码
4)打开终端机的软件
其中3、4时一致的旧能看到正常的文件内容
2、解决编码问题
1)修改打开终端机的软件的编码,比如:修改GNOME-termianl软件编码
LANG=要改变的编码
2)修改文件原本的编码:使用iconv命令
格式:iconv -f 原本编码 -t 新编码 原文件 -o 新文件
iconv --list:列出iconv支持语系数据
-f(from):原本编码格式
-t(to):新编码格式
-o:新文件名:将原文件以新编吗另存为新文件
3、DOS与Linux断行符转换
在DOS中断行符是“^M ” ; 在 L i n u x 中 断 行 符 是 “ ”;在Linux中断行符是“ Linux”,如果两个系统中文件相互导入需要修改断行符
格式: dos2UNIX -k[n] 原文件 [新文件]:将dos文件转成linux文件
UNIX2dos -k[n] 原文件 [新文件]:将Linux文件转成dos文件
-k:保留该文件原本时间
-n:保留原本就文件,将转换后内容输出到新文件

十一、编辑功能

ctrl+p			自动补全
:n1,n2>		n1到n2行缩进
:n1,n2<		n1到n2行取消缩进
shift+>		缩进选中行
shift+<		取消缩进选中行

十二、目录树

:Vex		垂直打开目录数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面哪个命令表示不保存强制退出 vim C A :wq B :q C :q! D :!q 关于 vim,下面那些说法是错误的? B A vim 在几乎所有的 Linux 发行版本中都有预装 B vim 最精简的版本是 vim 的小型版 C vim 功能丰富,效率极高 D vim 是 vi 的改进版本,完美向前兼容 vi 向下移动 10 行并定位到行尾,下面哪个做法是正确的? A A 10$ B 10dd C 10j D 10k 将文本中所下面哪个命令表示不保存强制退出 vim C A :wq B :q C :q! D :!q 关于 vim,下面那些说法是错误的? B A vim 在几乎所有的 Linux 发行版本中都有预装 B vim 最精简的版本是 vim 的小型版 C vim 功能丰富,效率极高 D vim 是 vi 的改进版本,完美向前兼容 vi 向下移动 10 行并定位到行尾,下面哪个做法是正确的? A A 10$ B 10dd C 10j D 10k 将文本中所有的 stu 不加确认替换为 Student ,下面哪些做法是对的? A A :1,$s/stu/Student/g B :1,$s/stu/Student/gc C :1,$s/Student/stu/gc D :1,$s/Student/stu/g 移动到第 15 行, 向下复制 10 行,移动文本末尾,粘贴,下面哪个做法是对的? A下面哪个命令表示不保存强制退出 vim C A :wq B :q C :q! D :!q 关于 vim,下面那些说法是错误的? B A vim 在几乎所有的 Linux 发行版本中都有预装 B vim 最精简的版本是 vim 的小型版 C vim 功能丰富,效率极高 D vim 是 vi 的改进版本,完美向前兼容 vi 向下移动 10 行并定位到行尾,下面哪个做法是正确的? A A 10$ B 10dd C 10j D 10k 将文本中所有的 stu 不加确认替换为 Student ,下面哪些做法是对的? A A :1,$s/stu/Student/g B :1,$s/stu/Student/gc C :1,$s/Student/stu/gc D :1,$s/Student/stu/g 移动到第 15 行, 向下复制 10 行,移动文本末尾,粘贴,下面哪个做法是对的? A有的 stu 不加确认替换为 Student ,下面哪些做法是对的? A A :1,$s/stu/Student/g B :1,$s/stu/Student/gc C :1,$s/Student/stu/gc D :1,$s/Student/stu/g 移动到第 15 行, 向下复制 10 行,移动文本末尾,粘贴,下面哪个做法是对的? A
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值