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 13:59
下一篇 2016-08-16 13:59

相關推薦

  • mysql基礎概念筆記 part1

    mysql基礎概念筆記     part1#wmd-preview h1 { color: #0077bb; /* 將標題改為藍色 */} mysql基礎概念筆記     part1 mysql 基礎概念 基礎原理,邏輯架構,事務,并發控制,讀寫鎖 1、前言     作為一個運維…

    Linux干貨 2016-09-19
  • Homework Week-4 grep用法

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 cp -r /etc/skel /home/tuser1 chmod  -R g=,o= /home/tuser1 2、編輯/etc/group文件,添加…

    Linux干貨 2016-09-06
  • 第四周作業新

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 ]# cp -r /etc/skel /home/tuser1             &nb…

    2017-02-20
  • man命令的用法

    man 命令的用法    在linux運維工作中,經常會有一些命令我們不是很清楚它們的準確用法,這時候我們就需要去查詢這些命令的用法,linux中就有很多文檔幫助我們去了解這些命令的用法,其中就有一條命令man,下面我就總結一下它的用法。     man 是 manual 的簡寫,提供命令的幫助文件。   &…

    Linux干貨 2017-02-17
  • 正則表達式和變量寫腳本

    #!/bin/bash 檢查系統所有用戶的shell是否為bash? 注釋:用grep查找是否有此類用戶,如果有則為真,則$?必然為0;顯示的passwd結果對我們沒意義,所以重定向到空。  grep “\bbash\b$” /etc/passwd &> /dev/null  A=`echo $?` …

    Linux干貨 2017-04-16
  • Linux之旅1

    Linux之旅1  一、描述計算機的組成及其功能 計算機的組成: 1、計算機主要由:CPU(控制器、運算器)、存儲器、輸入設備、和輸出設備(輸入設備、和輸出設備又稱為I/O設備)四部分組成; 計算機個組成部分的功能: CPU:主要有控制器和運算器組成; 控制器:控制器是整個計算機的中樞神經;其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,…

    2016-09-12
欧美性久久久久