vim 文本編輯器

vim 文本編輯器

vi 簡介

vi命令是UNIX操作系統和類UNIX操作系統中最通用的全屏幕純文本編輯器。Linux中的vi編輯器叫vim,它是vi的增強版(vi Improved),與vi編輯器完全兼容,而且實現了很多增強功能。


vi編輯器支持編輯模式和命令模式,編輯模式下可以完成文本的編輯功能,命令模式下可以完成對文件的操作命令,要正確使用vi編輯器就必須熟練掌握著兩種模式的切換。默認情況下,打開vi編輯器后自動進入命令模式。從編輯模式切換到命令模式使用“esc”鍵,從命令模式切換到編輯模式使用“A”、“a”、“O”、“o”、“I”、“i”鍵。

其他編輯器:

gedit 
一個簡單的圖形編輯器 
gvim 
一個 Vim 編輯器的圖形版本


打開文件

vim  [OPTION]... FILE...

+#: 打開文件后,直接讓光標處于第# 行的行首 
+/ PATTERN :打開文件后,直接讓光標處于第一個被 
PATTERN 匹配到的行的行首 
vim + file 直接打開file, 光標在 最后一行 
vim –b file 二進制方式打開文件 
vim –d file1 file2… 比較多個文件 
vim -m file 只讀打開文件 
ex file 或 或 vim –e 直接進入ex 模式 
如果該文件存在,文件被打開并顯示內容 
如果該文件不存在,當編輯后第一次存盤時創建它

vim模式

vim 編輯器模式切換: 
三種主要模式:命令模式、插入(編輯)模式編輯模式

命令模式(默認):移動光標,剪切/ 粘貼文本
插入(編輯)模式:修改文本
編輯模式 :保存,退出等

QQ截圖20160816025406.png

模式轉換

命令模式 –> 插入模式 
i: insert, 在光標所在處輸入 
I :在當前光標所在行的行首 輸入 
a: append, 在光標所在處后面輸入 
A :在當前光標所在行的行尾 輸入 
o: 在當前光標所在行的下方打開一個新行 
O : 當前光標所在行的上方打開一個新行 
x :向后刪除一個字符 
X :向前刪除一個字符 del 
u :撤銷一步 
esc: 退出當前模式

插入模式 ---->  命令模式
ESC
式 命令模式 ---->  擴展 模式
:
擴展式 模式 ---->  命令模式
ESC
鎖定和解鎖:CTRL+s,Ctrl+q

vim中定位到某行:

gg 定位到行首 
G 定位到最后一行,行首 
#G 定位到某一行 
:# 定位到某一行 
#gg 定位到某一行 
#代表行號

行操作

home鍵或^行首 
$行尾 end鍵 
dd 刪除一行Ndd 
yy 復制一行 Nyy 復制N行 
p 將復制行粘貼 P上粘 
擴展:剪切 
先刪除再粘貼 
刪除到行首 d + HOME 或^ 
刪除到行尾 d + END 或$

詞操作

dw 刪除一個詞,刪除時要將光標移動到這個詞的行首。 另外,如果光標不在行首,則刪除光標之后的字母。 
yw 復制一個詞 
w 切換單詞

塊操作

D 或d+$刪至行尾 d+^ 刪至行首 
y+$ 復制至尾 y+^ 復制至首

命令模式光標跳轉

字符間跳轉: 
h: 左 左 l: 右 右 j: 下 下 k: 上 上 
#COMMAND :跳轉由# 指定的個數的字符; 
單詞間跳轉: 
w :下一個單詞的詞首 
e :當前或下一單詞的詞尾 
b :當前或前一個單詞的詞首 
#COMMAND :由# 指定一次跳轉的單詞數 
當前頁跳轉: 
H:頁首 M :頁中間行 L: 頁底

v 模式(可視化模式)

進入v模式 移動光標選擇區域、 
編程的時候需要進行多行注釋:

1、注釋:ctrl+v進入列編輯模式 
2、向下或向上移動光標 
3、把需要注釋的行的開頭標記起來 
4、然后按大寫的I 
5、再插入注釋符,比如"#"。 
6、再按Esc,就會全部注釋了。

刪除多行注釋:

刪除:再按ctrl+v 進入列編輯模式;向下或向上移動光標 ;選中注釋部分,然后按d, 就會刪除注釋符號。

替換

:%s/this/that 每一行的第一個this被替換成that 
:%s/this/that/g 將文本中所有的this替換成that 
:2,5 s/sbin/666/g #替換第二行到第五行中sbin 
:set nu/nonu #顯示行號 
/ 正向查找 :/target n 往下查找,N 往上查找 
去消高亮顯示: noh 或 隨便查找一組沒有的字符 
:!ifconfig 調用系統命令

擴展模式

“: ”進入Ex 模式 
創建一個命令提示符:, 處于底部的屏幕左側 
命令: 
w 寫(存)磁盤文件 
wq 寫入并退出 
x 寫入并退出 
q 退出 
q! 不存盤退出,即使更改都將丟失 
r filename 讀文件內容到當前文件中 
w filename 將當前文件內容寫入另一個文件 
!command 
r!command

讀取其他文件(實例)

:r ./sshd_config.bak

關閉文件

擴展模式: 
:q 退出 
:q! 強制退出,丟棄做出的修改 
:wq 保存退出 
:x 保存退出 
命令模式 
ZZ: 保存退出 
ZQ:不保存退出

自定義vim的工作特性

[root@localhost ~]# vim ~/.vimrc 
輸入: 
set nu 
set history=10

配置文件:永久有效

全局:/etc/vimrc 
個人:~/.vimrc 
擴展模式:當前vim 進程有效 

(1)  行號
顯示:set number,  簡寫為set nu
取消顯示:set nonumber,  簡寫為set nonu
(2)  括號成對匹配
匹配:set showmatch,  簡寫為set sm
取消: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 (vim only)
:set wrapmargin=15
:help option-list
:set or :set all
set wrapmargin=1

編輯二進制文件

以二進制方式打開文件

vim –b binaryfile

擴展命令模式下,利用xxd 命令轉換為可讀的十六進制 
:%!xxd 
編輯二進制文件 
擴展命令模式下,利用xxd 命令轉換回二進制 
:%!xxd –r 
保存退出

vim打開多個文件:使用多個“窗口”

[root@localhost ~]# vim -O /etc/passwd /etc/hosts 
ctrl+WW 在文件之間進行切換多文件分割

vim -o|-O FILE1 FILE2 ...

-o: 水平分割 
-O: 垂直分割 
在窗口間切換:Ctrl+w, Arrow 
單文件窗口分割: 
Ctrl+w,s: split, 水平分割 
Ctrl+w,v: vertical, 垂直分割 
ctrl+w,q :取消相鄰窗口 
ctrl+w,o: 取消全部窗口 
: wqall 退出

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

(0)
M20_heM20_he
上一篇 2016-08-16
下一篇 2016-08-16

相關推薦

  • Linux磁盤管理及其相關命令使用

    Linux磁盤及文件系統    CPU MEMORY(RAM) I/O    I/O:disks entercard    Disks:持久存儲數據    接口類型:      IDE(ata):并行 133MB/s     &n…

    Linux干貨 2016-08-26
  • yum函數介紹以及自建yum倉庫

    一、前言     在之前介紹了yum的配置(詳細請移步 http://www.www58058.com/archives/6445)。但是有沒有發現一個問題,雖然我們已將倉庫指向一個可用的倉庫服務器,但是隨著Linux的不斷升級和改版,我們是否還需要不斷的去修改倉庫的配置文件,如果只有一臺還好,那如果我們有多…

    Linux干貨 2015-07-24
  • 初識linux

    Linux操作系統入門 Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基于POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。 1991年的10月5日,Linux創…

    Linux干貨 2016-06-09
  • Linux發行版的基礎目錄名稱命名法則及功用規定

    [root@localhost /]# tree -L 1. <—-> 為 / 符號,所有文件的根目錄;├── bin -> usr/bin <—-> 所有用戶可用的基本命令程序文件;├── boot <—-> 引導加載器必須用到的各靜態文件:kernel,initramfs(in…

    2018-02-28
  • 利用keepalived搭建高可用集群

    在一個系統中,常常存在一些單點服務器,為了提高整個系統的穩定性,我們常常需要對這些單點服務做高可用配置;keepalived即為一種常用的高可用配置服務; Keepalived的工作模式有以下兩種: 1、 主/備:即單虛擬路徑器,僅配置一個VIP; 2、 主/主:即多個虛擬路徑器,配置多個VIP,每個虛擬路徑器作為其中某個VIP的的master虛擬路徑器; …

    Linux干貨 2016-11-01
  • M20 – 1- 第二周(1):課堂練習與作業

    課堂練習:  1、字符終端登錄時,顯示當前登錄終端號,主機名和當前時間 [root@centos6 ~]# tty             #顯示當前終端號 /dev/pts/0 [root@cent…

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