linux 文本編輯器vim的使用詳解

vim 是 “vimsual interface IMproved”的簡稱,它可以執行輸出、刪除、查找、替換、塊操作等衆多文本操作,而且用戶可以根據自己的需要對其進行定製,這是其他編輯程序所沒有的。vim 不是一個排版程序,它不像MS Word 或 WPS 那樣可以對字體、格式、段落等其他屬性進行編排,它只是一個文本編輯程序。vim 是全屏幕文本編輯器,它沒有菜單,只有命令。

文本編輯器的模式

1)命令行模式
2)輸入模式、編輯模式
3)末行模式
4)替換模式

命令行模式

存盤 ZZ 保存退出

光標移動:
移動光標 h j k l 左 下 上 右 
光標移到本行開頭home 
移到本行末尾 end 
光標移到末尾 G 
光標移到開頭gg 
光標移動一個單詞w

粘貼複製

複製一行 yy 複製 n行 nyy
粘貼 p

刪除

刪除字符 x 向後刪除 X 向前刪除
刪除一行 dd ndd
刪除一個單詞 dw

撤銷

撤銷操作 u 向上一步 . 重複上一次操作

查找

查找/string define \ 轉義字符 查找“/bin/bash” /\/bin\/bash

刪除與修改

“編輯”是指文字的添加、修改以及刪除,甚至包括文字區塊的移動、複製等。
在vim 中一般認爲輸入與編輯是兩個概念。
編輯是在命令模式下進行的,先利用命令移動光標來定位到要進行編輯的地方,然後再使用相應的命令進行編輯;而輸入是在插入模式下進行的。

在命令模式下常用的編輯命令:

x     刪除光標所在字符。
dd     刪除光標所在的行。
r     修改光標所在字符,r 後是要修正的字符。
R     進入替換狀態,輸入的文本會覆蓋原先的資料。
s     刪除光標所在字符,並進入輸入模式。
S     刪除光標所在的行,並進入輸入模式。
cc     修改整行文字。
u     撤消上一次操作。
.     重複上一次操作。

編輯模式

輸入模式

在輸入模式下,屏幕的左下方會出現INSERT 字樣。
在輸入狀態下,用戶可以輸入文本的內容                                                      
在插入模式下也可以刪除字符,而標準的vim 編輯器在編輯狀態下不能刪除字符,只能插入字符

如何從命令行模式進入輸入模式
a 從光標所在位置後面開始輸入資料,光標後的資料隨增加的資料向後移動。
A 從光標所在行最後面的位置開始輸入資料。

插入(insert)

i 從光標所在位置前面開始插入資料,光標後的資料隨新增資料向後移動。
I 從光標所在行的第一個非空白字符前面開始插入資料。

開始(open)

o 在光標所在行下新增一行並進入輸入模式。
O 在光標所在行上方新增一行並進入輸入模式。

如何退出輸入模式
esc

末行模式

末行模式
只要在命令模式下輸入命令“:”即可進入末行模式。

在末行模式下,可以進行保存文件、退出vim、進行查找和替換等操作。
:

當同時編輯多個文件時  因爲同一時間只能顯示一個文件,所以在VI中切換打開的文件可以使用N或n來切換打開的文件

:n 切換下一個文件
:N 切換上一個文件
:q 退出
:q! 強制退出不保存
:w
:wq

替換

:s/old/new 只替換光標所在行的第一個old string
:s/old/new/g 將本行(光標)的所有old string替換爲new string   g global  n代表一個行號
:%s/old/new/g 將本文中所有的old string替換爲new string
:1,2s/old/new/g 替換1到2行中的old string爲new string
:.,2s/old/new/g .代表光標所在行 當前行到第二行的
:2,$s/old/new/g 替換2到最後一行中的old string爲new string

:set nu 顯示行號
:set nonu
:!command 在vim編輯器中執行一條命令(不許要退出當前的編輯,可以在編輯器中執行命令,類似退出編輯器執行命令)

查找

/string                    將光標定位到string 所在的行。
?string                    將光標移動到最近的一個包含 string 字符串的行
:n                          把光標定位到文件的第n 行。

保存文檔
可以用:n,mw filename 命令將第n 行到第m 行的文字存放的所指定的filename 文件中。

替換模式

命令行下按R鍵進入替換模式
退出
esc

相關配置文件

~/.viminfo vim    歷史編輯文檔

~/.vimrc vim   個性設置文檔

自定義文件頭註釋 ~/.vimrc

autocmd BufNewFile *.py,*.sh,*.c exec ":call SetTitle()"

func SetTitle()
        if &filetype == 'python'
                call setline(1,"\#!/usr/bin/env python")
                call append(line("."),"\#enconding=utf-8")
                call append(line(".")+1, "\#Author: Bai Shuming")
                call append(line(".")+2, "\#Created Time: ".strftime("%Y/%m/%d %H:%M"))
                call append(line(".")+3, "")
    elseif &filetype == 'sh'
                call setline(1,"\#!/usr/bin/env bash")
                call append(line("."),"\#enconding=utf-8")
                call append(line(".")+1, "\#Author: Bai Shuming")
                call append(line(".")+2, "\#Created Time: ".strftime("%Y/%m/%d %H:%M"))
                call append(line(".")+3, "")
    elseif &filetype == 'c'
        call setline(1,"#include <stdio.h>")
        call append(line("."), "")
        endif

endfunc

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章