vim編輯器整理(無演示)

vim編輯器

vim編輯器是linux中最強大的全屏幕純文本編輯器,他是vi編輯器的增強版。

文本編輯器:
	文本:純文本,在ASCII角度講是純粹的不加任何修飾的文本信息
    支持Unicode編碼方式
文本編輯器種類:
	行編輯器:sed
	全屏編輯器:nano,vi

		vi : (VIsual Interface)		
		vim: VI IMproved
	其他編輯器:
		gedit: 一個簡單的圖形編輯器		
		gvim:一個vim編輯器的圖形版本

vim: 模式化的編輯器,

基本常用模式:
	命令模式
	編輯模式,也叫插入模式
	末行模式:也叫擴展命令模式,內置的命令行接口

打開文件:
	  vim [options] [file ..]
  	如果vim打開的文件不存在,他會自動創建此文件,并把編輯的內容保存在此文件中。如果文件事先存在,則會打開此文件,并且光標默認處在第一行的第一個字符上。
	關閉vim:兩個大寫ZZ。就可以保存關閉
  		+#:打開文件后,字節讓光標處于第#行行首
  		+/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行首。
  		vim +  file  :打開文件后,光標自動處在尾行行首  		
		+#:  打開文件后,直接讓光標處于第# 行的行首
		+/ PATTERN :打開文件后,直接讓光標處于第一個被PATTERN 匹配到的行的行首		
                vim + file  直接打開file, 光標在 最后一行行首[object Object]
vim –b file  二進制方式打開文件		
vim –d file1 file2… 比較多個文件:在文件不同的位置會有高亮顯示
vim -m file 只讀打開文件

		ex file 或 或 vim –e 直接進入ex


模式轉換:
	命令模式:默認模式
		命令模式--> 編輯模式:
	
	        i:insert,在光標所在處前方輸入
		a: append,在光標所在處后方輸入
		o: 在光標所在處下方打開一個新行,光標直接處于新行行首		I:在當前光標所在行的行首輸入。
		A:在當前光標所在行的行尾輸入。
		O: 在光標所在的行的上方打開一個新行。
		
		編輯模式-->命令模式
	        
	        只需要敲Esc鍵

		命令模式-->末行模式:擴展命令模式
		    :
		末行模式:擴展命令模式-->命令模式
		    按Esc

		鎖定和解鎖:CTRL+s,Ctrl+q
		    鎖定后通過鍵盤輸入的操作,不通過輸出設備顯示,但是在解鎖之后會插入到光標所在位置后方插入前面輸入設備輸入的數據。


關閉文件:
	ZZ:保存并退出
	ZQ:不保存退出

末行模式下:輸入q退出
	q!強制退出,不保存此前的編輯操作。
	wq保存修改并退出
	x保存并退出
	w/PATH/TO/SOMEFILE 保存至新文件FILE并退出,相當于另存為的效果

光標跳轉:

字符間跳轉:	

        h:光標向左跳轉一個字符	
        l:光標向右跳轉一個字符
	j:光標向下跳轉
	k:光標向上跳轉

	#COMMAND:跳轉由#指定的個數的字符
	
單詞間跳轉
	w:光標跳轉到下一個單詞的詞首	
	e:光標跳轉到當前或者下一個單詞的詞尾
	b:光標跳轉到當前或前一個單詞的詞首

	#COMMAND :跳轉由#指定的個數的單詞
	
行首行尾跳轉
	^:光標跳轉至行首的第一個非空白字符
	0:跳轉至行首
	$:光標跳轉至行尾

行間跳轉

	#G:光標跳轉至由#指定的行
	1G或者gg:光標跳轉至第一行	
	G:跳轉至最后一行

句間跳轉

	):跳轉到下一句
	(:跳轉到上一句
段間跳轉

	}:跳轉到下一段
	{:跳轉到上一段
翻屏操作;
	Ctrl + f :向文件尾部翻一屏
	Ctrl + b :向文件首部翻一屏
	Ctrl + d :向文件尾部翻半屏
	Ctrl + u : 向文件首部翻半屏
	Enter : 按行向后翻

vim的編輯命令:

  • 字符編輯:

x:刪除光標所在處的字符;	    
    #x:刪除光標所在處起始的#個字符
    xp:交換光標所在處的字符與其后面字符所在的位置
    替換命令:(replace)
    	rCHAR:替換光標所在處的字符為CHAR
  • 刪除命令

d:刪除命令,可結合光標跳轉字符,實現范圍刪除;	
d$:刪除當前光標所在處至行尾的字符	
d^:刪除當前光標所在處至行首第一個非空白字符位置
	dd:刪除光標所在行的整行字符
		#dd:刪除光標所在處的行起始的共#行字符;
刪除的字符不會被清掉,會保留在緩沖區當中,但是只能粘貼最后一次操作的東西
  • 粘貼命令:(put paste)

p:緩沖區的內容如果為一整行,或者為多個整行,則粘貼在當前光標所在行的下方;否則粘貼至當前光標所在出的后方。
P:緩沖區的內容如果為一整行,或者為多個整行,則粘貼在當前光標所在行的上方;否則粘貼至當前光標所在出的前方。
  • 復制命令:(yank)

y:復制,工作行為相當于d命令;
	y$:從光標所在位置復制到行尾
	y^:從行首非空白字符開始復制到光標所在位置		
	y0:從行首復制到光標所在位置

改變命令(change ,c)
	編輯模式--> 輸入模式,實現刪除操作;
	cc:刪除光標所在處的行,并轉換為輸入模式		
	#cc:刪除光標所在處以及后面的#行,并轉換為輸入模式
  • 其他的編輯操作:

可視化模式:
	v:按字符選定
	V:按行選定
	結合編輯命令:d , c , y
撤銷操作:(undo)	
    u:撤銷此前的操作,一般默認可以撤銷50次。前提是此前操作都保存在緩沖區當中。
    #u:撤銷此前#次的操作

撤銷此前的撤銷操作:
	Ctrl + r :恢復此前的撤銷操作

重復執行前一個編輯操作:
	. :重復此前的編輯操作。

vim自帶的練習教程:vimtutor

vim末行模式:(擴展命令行模式)

內建的命令行接口

(1)地址定界:
:start_pos[,end_pos]	#:特定的第#行,例如5就表示第5行
	.:點號表示當前行
	$:表示最后一行	#,#:從第#行到第#行,左側為起始行,右側為結束行
	#,+#:指定行范圍,左側為起始行的絕對編號,右側為相對左側行號的偏移量。
	%:表示全文
	/pattern/:第一次被指定的模式所匹配到的行,光標所在處起始,到文件尾部的第一次。
		/first/,$,從第一次first所匹配到的行到最后一行
	/pattern1/,/pattern2/:從光標所在處起始,第一次由pattern1匹配到的行開始,至第一次pattern2匹配到的的行之間的所有行。
可同編輯命令一同使用,實現編輯操作:
	d:刪除匹配到的內容
	y:復制匹配到的內容
	c:替換匹配到的內容
	w /PATH/TO/SOMEFILE:將范圍內的文本保存在指定的文件中
	r /PATH/FROM/SOMEFILE:將制定文件中的文本讀取并插入至指定位置。
	!COMMAND	在末行模式下執行命令,不對當前文件產生影響
	r!COMMAND 將命令執行結果插入當前光標所在位置的后方

(2)查找
	/PATTERN:從當前光標所在處向文件尾部查找能夠被當前模式匹配到的所有字符串
	?PATTERN:從當前光標所在處向文件首部查找能夠被當前模式匹配到的所有字符串
		n:下一個,與命令方向相同
		N:上一個,與命令方向相反

(3)替換查找并替換

s:末行模式的命令:使用格式:
	s/要查找的內容/替換為的內容/修飾符
	要查找的內容:可使用正則表達式
	替換為的內容:不能使用正則表達式,但可以引用;
		如果“要查找的的內容”部分在模式中使用了分組符號:在“替換為的內容”中使用向后引用。
		直接引用查找模式匹配到的全部文本;
	修飾符:主要是用來實現修飾查找替換時的某些功能。
		i:查找時忽略大小寫
		g:全局替換,意味著一行中如果匹配到多次,則均替換。

	可把分隔符替換為其它非常用字符:
		s@@@
		s###

vim的多文件模式;

多文件:
vim FILE1 FILE2 。。。

在文件間切換:
	next :下一個
	prev :上一個
	first: 第一個
	last:最后一個
退出所有文件:
	wqall 保存所有文件并退出
	wall 保存所有文件
	qall 退出所有文件
多窗口:
	-o:水平分割窗口	-O: 垂直分割窗口		
	切換窗口:Ctrl+w 摁完松開 在摁向上或者向下鍵上下切換窗口
	Ctrl+w 摁完松開 在摁向左或者向右鍵左右切換窗口

定制vim的工作特性

對vim的修改要想永久有效,需要對其配置文件進行修改:
    全局永久有效:/etc/vimrc
    個人永久有效:~/.vimrc
在末行模式(擴展命令模式)下修改,只對當前vim進程有效。
(1)行號
    顯示:set number ,簡寫為set nu
    取消顯示:set nonumber ,簡寫為set nonu
(2)括號成對匹配
    匹配:set showmatch ,簡寫set sm
    取消:set noshowmatch , 簡寫 set nosm
(3)自動縮進
    啟用:set ai
    禁用:set noai
(4)高亮搜索
    啟用:set hlsearch
    禁用:set nohlsearch(5)語法高亮
    啟用:syntax on
    禁用:syntax off
(6)忽略字符的大小寫
    啟用:set ic
    禁用:set noic
(7)文件格式
    啟用:fileformat = unix
    不忽略:fileformat = dos
(8)設置文本高度    set textwidth = 65
    set wrapmargin = 15

當天作業:

  • 1、如何設置tab縮進為4個字符?

    set ts=4
  • 2、復制/etc/rc.d/init.d/functions文件至/tmp目錄;替換/tmp/functions文件中的/etc/sysconfig/init為/var/log;

    [root@localhost ~]#sed  's@/etc/sysconfig/init@/var/log@g' /tmp/functions
  • 3、刪除/tmp/functions文件中所有以#開頭,且#后面至少有一個空白字符的行的行首的#號;

    [root@localhost ~]# sed -r 's@^#([[:space:]]+)@\1@' /tmp/functions

原創文章,作者:dxkboke,如若轉載,請注明出處:http://www.www58058.com/32548

(0)
dxkbokedxkboke
上一篇 2016-08-10
下一篇 2016-08-10

相關推薦

  • DevOps如何重構IT戰略

    翻譯: 至尊寶 原文: http://www.citeworld.com/article/2897738/development/how-devops-can-redefine-your-it-strategy.html?page=2   DevOps究竟是曇花一現還是你一直在尋找的競爭優勢?我們咨詢了一些專家,對于這種趨勢他們的想法是什…

    Python干貨 2015-03-26
  • LVS的四種模型

    相關術語: vs:Virtual Server,Director,Dispatcher,Balancer rs:Real Server,upstream server,backend server lvs集群的類型: lvs-nat:修改請求報文的目標IP lvs-dr:操作封裝新的MAC地址; lvs-tun:在原請求IP報文之外新加一個IP首部; lvs…

    Linux干貨 2016-10-30
  • 第十二周作業

    1、請描述一次完整的http請求處理過程;     1)建立或處理連接:接收請求或拒絕請求;     2)接收請求:接收來自于網絡的請求報文中對某資源的一次請求的過程;接收請求的方式通常是并發訪問響應模型;     3)處理請求:對請求報文進行解析,并獲取請求的資源及請求方法等相關信息,解析后的報文…

    2017-03-27
  • yum詳解

    yum YUM: Yellowdog Update Modifier,rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包,up2date的替代工具 yum repository: yum repo,存儲了眾多rpm包,以及包的相關的元數據文件(放置于特定目錄repodata下) yum對軟件包的管理機制 —–引用了…

    Linux干貨 2016-08-25
  • iptables之nat

    NAT網絡地址轉換SNAT:修改IP報文中的源IP地址 本地向互聯網請求讓本地網絡中的主機可使用統一地址與外部通信,從而實現地址偽裝請求:修改源IP,如果修改則由光梨園定義響應:修改目標IP,由nat自動根據會話表中追蹤機制實現相應修改DNAT:修改目標地址轉換 外網服務器向其他客戶端請求請求:由外網主機發起,修改其目標地址,由管理員定義相應:修改源地址,但…

    2017-11-12
  • linux內核及系統啟動流程

    Linux內核 內核概述 如圖,最上面是用戶空間(User Space),是用戶程序執行的地方;用戶空間之下是內核空間(Kernel Space),內核位于此?;诖耍珿UN C Library(glibc)提供了連接內核的系統調用接口,還提供了在用戶空間應用程序和內核之間進行轉換的機制,因為內核空間和用戶空間的應用程序使用的是不同的保護地址空間。用戶空間的…

    Linux干貨 2016-08-08
欧美性久久久久