摘要:mysql
vi從安裝到使用linux
vi從菜鳥到高手sql
0、 vim - Vi IMproved, a programmers text editorshell
分爲 VI和VIM,如今流行的發行版裏面VI=VIMvim
是一個文本編輯器(全部沒有圖片的文本,純文本內容,無視後綴名)ssh
不能編輯二進制文件編輯器
不能編輯目錄spa
Debian系安裝vim的時候:命令行
apt install vim生命週期
一、目前整個地球上只有一個地方不默認安裝vi
Docker 鏡像Images 的容器
二、查看VI版本
在命令行:"vi --version"
在文本里面:":version"
三、使用步驟
1.vi filename
vi 後面加文件名 //若存在,則直接打開編輯,若 不存在,則新建一個文件
2.進入插入模式
鍵入 "i" 鍵,建議按i鍵
也可鍵入 "s"鍵,可是s鍵是刪除當前光標的字符後,再進入插入模式
3. 插入數據
4. 敲 "Esc"鍵,或者鍵入組合鍵 "^[" (Ctrl-[)進入命令模式
小訣竅:按組合鍵的時候,必定要先按前面的輔助鍵不放,而後再按功能鍵
5. 輸入 ":" ,而後鍵入 "x/wq/w/q!/q/qa/qa!"
命令 |
說明 |
狀態 |
x |
保存並退出 |
|
wq |
保存並退出 |
|
w |
保存 |
written |
q! |
強制退出並不保存 |
|
qa! |
等價於q! |
|
q |
退出 |
|
qa |
等價於q |
|
快捷退出:
^w q // Ctrl+w q
等價於 :q
四、狀態行
當前編輯窗口的最後一行被稱爲狀態行
用於顯示文件名
顯示行、列
顯示字符的個數
五、三種模式
插入模式
i |
進入插入模式 |
命令模式
^[ 或 Esc |
進入命令模式 |
末行模式
: |
進入末行模式 |
插入模式
i |
在當前位置插入數據 |
a |
光標位置後面插入數據 |
A |
本行行尾插入數據 |
o |
光標所在行的下一行插入數據 |
O |
光標所在行的上一行插入數據 |
s |
刪除光標所在位置字符並在光標後插入數據 |
S |
刪除光標所在行並在行首插入數據 |
cw |
刪除當前光標所在單詞並進入插入模式 |
六、在文件中移動光標
上下左右
h |
← |
l |
→ |
j |
↓ |
k |
↑ |
行首行尾
^ |
行首,非空字符位置,不包含空格 |
0 |
行首,空字符處,包含空格 |
$ |
行尾,空字符處,包含空格 |
g_ |
行尾,非空字符位置,不包含空格 |
文首文尾
gg |
文首 |
G(shift+g) |
文末 |
屏幕頭部中間底部
H(shift+h) |
頂行 |
M(shift+m) |
中間行 |
L(shift+l) |
底行 |
翻屏
^f |
往下翻一屏 |
^b |
忘上翻一屏 |
撤銷
u |
撤銷一次操做 |
1 change; before #19 22 seconds ago |
^r |
反撤銷一次操做 |
1 change; after #19 33 seconds ago |
刪除
x |
刪除光標所在處的一個字符 |
dw |
刪除光標所在處的一個單詞 |
D(shift+d) |
刪除光標所在處後面全部的字符 |
dd |
刪除當前行 |
Ndd |
刪除N行 |
dw |
刪除一個單詞 |
複製粘貼
yy |
複製一行 |
p |
粘貼 |
v-w-y |
複製一個單詞 |
v-y |
複製一個字符 |
七、查找一個字符串
鍵入 "/" 進入查找模式,而後在後面鍵入須要查找的字符串
n |
跳到下一個字符串 |
N |
跳到上一個字符串 |
八、替換
:s/old/new |
在一行內將第一個old替換爲new |
:s/old/new/g |
在一行內將全部old替換爲new |
:s/old/new/gc |
在一行內將全部old替換爲new時每一個都確認一下 |
:%s/old/new/g |
在文件內將全部old替換爲new |
:%s/old/new/gc |
在文件內將全部old替換爲new時每一個都確認一下 |
小訣竅:在":"模式的時,鍵入 "^p/^n"或"↑/↓"選擇已經執行過的命令
九、簡單設置
在 ":"模式使用
行號 |
set nu(number) set nonu |
只讀 |
set readonly |
縮進 |
set paste |
十、使用分級
等級 |
生命週期 |
要求 |
備註 |
第一級 |
能吃飯 |
安裝 啓動 看文檔 知道進入以後的經常使用操做 上下左右 刪除 複製 粘貼 插入 退出 |
|
第二級 |
有肉吃 |
各類插入你都會 移動光標滿天飛 複製粘貼擒拿手 取消操做你不行 出入自由紅牌樓 |
|
第三級 |
吃香喝辣 |
更好 各類重複 更強 各類跳 更快 處處飛 |
|
第四級 |
有人買單 |
成神 |
|
十一、擴展
1.自動提示
^p |
調出自動提示窗口,向上一行一行操做 |
^n |
調出自動提示窗口,向下一行一行操做 |
^m |
確認 |
2.塊操做
^v |
進入塊操做 |
使用塊操做在全部行前面加上 ##
^v
-> shift-i
-> ##
-> ^[
3.可視化選擇
v |
進入可視化選擇 |
V |
選擇一行 |
4.縮進
< |
左縮進 |
> |
右縮進 |
5.分屏
^w s / :sp |
分橫屏 |
^w v / :vs |
分豎屏 |
^w q |
退出 |
^w hjkl |
屏之間切換 |
6.建立新文件
經過vi的命令模式,在當前打開的文件裏面,使用":"命令以後,
鍵入 :new file_name 而後便可在當前窗口新建立一個分屏的file_name文件窗口
此時你能夠經過 ^w jklm進行上下切換,也能夠自由地在多個文件中進行復制粘貼
7.其它高級小訣竅
一、對沒有權限的文件修改的保存(使用": w !sudo tee %" ):
your@your:/etc/apt$ vi 1111
插入數據以後,鍵入命令模式i(":")
操做:
": w !sudo tee %"
-> 按 "O" 或 "L" 都可
:r !uname -a // 插入執行命令以後顯示的內容到本文本
:w !sudo tee %
//提權並保存編輯好來的文檔
執行過程:
Linux your 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
W13: Warning: File "11111" has been created after editing started
[O]K, (L)oad File:
:w !sudo tee %
Linux your 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
W13: Warning: File "11111" has been created after editing started
Press ENTER or type command to continue
your@your:/etc/apt$ cat 11111
Linux your 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
your@your:/etc/apt$
二、鎖屏模式編輯vi
^s |
鎖屏,終止屏幕終端回顯 |
^q |
恢復正常模式 |
注意:若是鍵盤熟悉度不高,也就是說打字速度低於150,或者錯誤率高於1%,建議不要觸碰此等高度危險操做,否則後果自負
三、其它補充:
一、vi 配置文件和搜索模式時的高亮顯示小結:
配置文件:
your@your:~$ cd
your@your:~$ ll .vimrc
-rw-rw-r-- 1 your your 31 Aug 7 04:13 .vimrc
.file_name |
"." 在linux裏面表明隱藏文件 |
經過 ls -a 能夠查看隱藏文件
-a, --all
do not ignore entries starting with .
更改vi顯示,能夠有兩種模式:
臨時 |
在文件內 |
永久 |
在.vimrc配置文件內 |
鍵入符合vi的語法
搜索模式的高亮顯示:
永久:
一、vi .vimrc
二、set hlsearch
臨時:
一、vi file_name
二、: set hlsearch
永久:
一、vi .vimrc
二、刪除 set hlsearch 或者註釋
說明:.vimrc的配置文件裏面," 雙引號表明註釋
一個語法高亮和開啓行號顯示、搜索高亮顯示的demo:
二、vi搜索模式先後說明:
/ |
向後搜索 |
n:下一個 N:上一個 |
? |
向前搜索 |
n:上一個 N:下一個 |
向前 <----"N"---- "?"--"n"--- souce ----"N"---"/" -----"n"---> 向後
三、在vi、mysql中執行linux命令:
環境 |
方法 |
說明 |
vi |
:! linux_command |
新建立有窗口執行命令 |
mysql |
\! linux_command 或 system linux_command |
在當前mysql交互界面執行命令 注意:\! 與命令之間有空格,不然會出現: mysql> \!pwd ERROR: Usage: \! shell-command mysql> \! pwd; /home/huhua mysql> |
system (\!) Execute a system shell command.
四、高級功能:使用SSH服務登錄遠程主機:
mysql |
system ssh core@192.168.28.144 |
vi |
! ssh core@192.168.28.144 |
五、vi 插入":"模式執行命令的輸出到vi當前文本里面
:r !linux_command
包括ping均可以導入到文本里面,只是ping的輸出不明文顯示