先必须知道vim的3中工作模式
Vim 提供了一个功能,只有当要搜索的单词 / 模板包含大写字母时,编辑器才会区分大小写。要想实现这种功能,必须先设置ignorecase,再接着设置smartcase变量。
:set ignorecase
:set smartcase
例如,如果一个文件中既包含LINUX也包含linux,在开启智能大小写搜索功能时,如果使用/LINUX进行搜索,只有单词LINUX处会被搜到。反之,如果搜索/linux,那么不论大小写的搜索结果都会被匹配。
㈡ Linux绯荤粺涓璿im宸ュ叿甯哥敤锻戒护澶у叏
鍦╨inux涓嫔仛寮鍙戯纴鐢氲呖鏄鍙锅氱$悊缁存姢宸ヤ綔锛屼篃灏戜笉浜哣im镄勪娇鐢ㄣ备綔涓轰竴涓鏂版坠锛屾垜涔熸槸鍒氩垰鎺ヨЕ锛屾湰鑺傚皢鎴戞棩甯镐娇鐢ㄦ垨鏀堕泦镄刅im甯哥敤锻戒护璁板綍涓嬫潵銆
褰撶劧锛岀洿鎺ュ湪锻戒护琛屼笂杈揿叆锛历imtutor锛屽氨鍙浠ュ︿範鍒癡im镄勬墍链夊懡浠や简銆俈im寰埚己澶э纴寰埚氱墰浜哄湪vim閲岄泦鎴愬緢澶氭彃浠朵粈涔堢殑锛屼絾杩欓噷鍙浠嬬粛锘烘湰vim锻戒护銆
绉诲姩锻戒护
h "宸j "涓媖 "涓妉 "鍙硍 "鍏夋爣绉诲姩鍒颁笅涓涓鍗曡瘝镄勯栧瓧绗 a word forwardb "鍏夋爣绉诲姩鍒颁笂涓涓鍗曡瘝镄勯栧瓧绗e "鍏夋爣绉诲姩鍒颁笅涓涓鍗曡瘝镄勫熬瀛楃ge "鍏夋爣绉诲姩鍒颁笂涓涓鍗曡瘝镄勫熬瀛楃$ "灏嗗厜镙囩Щ锷ㄥ埌褰揿墠琛岃屽熬^ "灏嗗厜镙囩Щ锷ㄥ埌褰揿墠琛岀涓涓闱炵┖锏藉瓧绗0 "灏嗗厜镙囩Щ锷ㄥ埌褰揿墠琛岀涓涓瀛楃
娉锛 杩欎簺锻戒护闄や简'0'锻戒护浠ュ栭兘鍙浠ュ湪鍓嶉溃鎺ュ弹涓涓璁版暟锛2$锛涗笂闱㈡墍链夊懡浠ら兘鍙浠ュ湪鍓嶉溃鎺ュ弹涓浜涙搷浣滃懡浠わ纴濡俤$锛宒w绛夈
淇鏀瑰懡浠
x "鍒犻櫎涓涓瀛楃d "鍏跺悗璺熶换浣曚竴涓浣岖Щ锻戒护锛屽皢鍒犻櫎浠庡綋鍓嶅厜镙囧埌浣岖Щ缁堢偣澶勭殑鏂囨湰 "鍐呭癸纴濡俤w锛宒elete word c "涓巇锻戒护锷熻兘绫讳技锛屼笉钖岀殑鍦ㄦ墽琛屽畬鍒犻櫎钖庡懡浠よ繘铡筹nsert妯″纺锛宑hange dd "鍒犻櫎涓鏁磋寉y "澶嶅埗涓鏁磋宲 "鎶婂壀璐存澘鍐呭圭矘甯栧埌褰揿墠浣岖疆
vimdiff 1.c 2.c "鍒涘缓涓涓鍨傜洿鍒嗗壊绐楀彛姣旇缉杩欎袱涓鏂囦欢涓嶅悓镄勫湴鏂
鎼灭储锻戒护
fa "鍗曞瓧绗︽悳绱锛宖a鏄鍦ㄥ綋鍓嶈屾悳绱涓嬩竴涓猘,find a/string "鍏ㄦ枃链鎼灭储涓涓瀛楃︿覆锛屽傝佹垒鍒板崟璇"func"鍒欑敤/func "濡傛灉鏂囨湰链夊氢釜func,鎸変笅n灏变细绉诲姩鍒版帴涓嬫潵镄刦unc浣岖疆涓
"n鍓嶉溃涔熷彲浠ユ帴鍙楁暟瀛楄℃暟锛屽3n锛屽氨浼氭垒绱ф帴绗涓変釜func
?string "涓/string镄勫姛鑳界浉钖岋纴鍞涓镄勫尯鍒灏辨槸鎼灭储镄勬柟钖戠浉鍙
娉锛
鍙浠ョ敤锛歴et noingorecase 蹇界暐瀛楃﹀ぇ灏忓啓锛
/鍜岋纻锻戒护閮芥湁璁板繂锷熻兘锛屽彲浠ョ敤澶氭UP阌阃夋嫨鎼灭储铡嗗彶锛岃板綍锻戒护链澶х殑铡嗗彶𨱒℃暟鍙浠ュ湪浼氲瘽viminfo涓婃洿鏀癸绂
鎼灭储瀛楃.*/?%$^[]绛夌壒娈婂瓧绗﹁佸湪鍓嶉溃锷犱竴涓鍙嶆枩𨱒犺浆镒忥绂
鎼灭储鍒板ょ珛镄勫崟璇嶏纴涔熷氨鏄鍓嶅悗閮芥病链夊叾浠栧瓧绗︾殑锛堥櫎浜嗙┖镙硷纴鍒惰〃绗︼级,濡傚彧鎼渢he,涓嶆兂鎼滃埌there鎴杦hether杩欐牱镄勶纴瑕佺敤//the/锛
鍙浠ョ敤:set hlsearch鎶婅佹悳绱㈢殑鍗曡瘝楂树寒鏄剧ず锛
瀹氢綅锻戒护
G "鍏夋爣绉诲姩鍒版枃浠剁殑链钖庝竴琛岋纴鎴栬匰hift+G15G "鍏夋爣绉诲姩鍒版枃浠剁殑绗15琛岋纴鎴栬15gggg "鍏夋爣绉诲姩鍒版枃浠剁殑绗涓琛 45% "鍏夋爣绉诲姩鍒版枃浠45%澶凥 "鍏夋爣绉诲姩鍒板綋鍓嶅睆骞旷殑链寮濮婱 "鍏夋爣绉诲姩鍒板綋鍓嶅睆骞旷殑涓闂碙 "鍏夋爣绉诲姩鍒板綋鍓嶅睆骞旷殑链钖
娉锛 CTRL+g镆ョ湅褰揿墠鍏夋爣浣岖疆
婊氩睆锻戒护
CTRL+U "绐楀彛钖戜笂婊氩崐灞廋TRL+D "绐楀彛钖戜笅婊氩崐灞廋TRL+E "钖戜笂婊氢竴琛岋纴娌″お澶у疄闄呮剰涔塁TRL+Y "钖戜笅婊氢竴琛孋TRL+F "钖戝墠婊氢竴鏁村睆CTRL+B "钖戝悗婊氢竴鏁村睆zz "褰揿墠琛岀疆浜庡睆骞曚腑澶畓t "褰揿墠琛岀疆浜庡睆骞曢《绔疴b "褰揿墠琛岀疆浜庡睆骞曞簳绔
鍒嗗壊绐楀彛
:split "妯镌鍒嗗壊:new "妯镌娣诲姞涓涓鏂扮獥鍙:vsplit "绔栫潃鍒嗗壊:vnew "绔栫潃娣诲姞鏂扮獥鍙CRTL+W w "鎸夐‘搴忓垏鎹㈠皬绐楀彛:qall "鍏抽棴镓链夌獥鍙:wall "淇濆瓨镓链夌獥鍙
镙囩(tab)锻戒护
:tabedit filename "鍦ㄦe湪缂栬緫镄剉im绐楀彛寤轰竴涓鍙玣ilename镄则ab椤:tab split "鏂板缓涓涓猼ab椤礸t "绉诲姩鍒颁笅涓涓猼ab椤礸T "绉诲姩鍒颁笅涓涓猼ab椤
㈢ vim的使用方法
命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
输入模式:正常的文本录入。
末行模式:保存或退出文档,以及设置编辑环境。
在每次运行Vim编辑器时,默认进入命令模式,此时需要先切换到输入模式后再进行文档编写工作,而每次在编写完文档后需要先返回命令模式,然后再进入末行模式,执行文档的保存或退出操作。在Vim中,无法直接从输入模式切换到末行模式。Vim编辑器中内置的命令有成百上千种用法,为了能够帮助读者更快地掌握Vim编辑器,表4-1总结了在命令模式中最常用的一些命令。
表4-1 Vim中常用的命令
编辑
命令 作用
dd 删除(剪切)光标所在整行
5dd 删除(剪切)从光标处开始的5行
yy 复制光标所在整行
5yy 复制从光标处开始的5行
n 显示搜索晌前陆命令定位到的下一个字符串
N 显示搜索命令定位到的上一个字符串
u 撤销上一步的操作
p 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面
末行模式主要用于保存或退出文件,以及设置Vim编辑器的工作环境,还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数。要想切换到末行模式,在命令模式中输入一个冒号就可以了。Vim文本编辑器
命令宴顷 作用
:w 保存
:q 退出
:q! 强制退出(放弃对文档的修改内容)
:wq! 强制保存退出
:set nu 显示行号
:set nonu 不显示行号
:命令 执行该命令
:整数 跳转到该行
:s/one/two 将当前光标所在行的第一个one替换成two
:s/one/two/g 将当前光标所在行的所有悔兆one替换成two
:%s/one/two/g 将全文中的所有one替换成two
?字符串 在文本中从下至上搜索该字符串
/字符串
㈣ Linux下vim编辑器命令大全
vim可以分为三种状态,分别是 命令行模式(command mode) 、 输入模式(Insert mode) 和 底行模式(last line mode) ,这 3 种工作模式可随意切换,如下图所示。
使用vim编辑文件时,默认处于命令行模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
下图所示是vim处于命令行模式的状态示意图。
在输入模式下,vim可以对文件执行写操作,类似于在Windows系统的文档中输入内容。
使vim进行输入模式的方式是在命令模式状态下输入 i 、 I 、 a 、 A 、 o 、 O 等插入命令(各指令的具体功能下表所示),当编辑文件完成后按 esc 键即可返回命令模式。
下图所示为vim处于输入模式模式下的示意图。
底行模式用于对文件中的指定内容执行保存、查找或替换等操作。
使vim切换到底行模式的方法是在 命令行模式 状态下按 : 键(注意是英文符号),此时vim窗口的左下方出现一个 : 符号,这是就可以输入相关指令进行操作了。
指令执行后vim会自动返回命令行模式。如想直接返回命令行模式,按 esc 即可。
下图所示为vim进入底行模式后的状态。
对于新手来说,经常不知道自己处于什么模式。不论是自己忘了,还是不小心切换了模式,都可以按一次 esc 键返回命令行模式。如果你多按几次 esc 键后听到"嘀————"的声音,则代表你已经处于命令行模式了。
打开文件
打开文件时光标处于文件尾部
打开文件时,光标定位到第几行
字符移动
这些移动键都可以加上数字(5h:向左移动5个字符格)
单词移动
行内跳转
行间移动
在底行模式下,直接给出行号,实现跳转
用法:起始地址,结束地址 s @要替换内容@替换后内容@gi(@分隔符)
例 :1,$s/a/A/g 把文件中全部的a换替换成A,全局替换
显示取消行号
设定自动缩进(写脚本时)
查找到的文本高亮显示
语法高亮
/etc/vimrc :全局配置文件,永久有效
~/.vimrc :个人配置文件,每个用户的家目录中,若不存在,手动创建
对于第一次用vim的童鞋,有几点需要提醒一下: