This articles is published 1323 days ago and last updated 687 days ago, some information may be out of date.
Linux 的命令基本用法 - vim 編輯器 Vimlogo.png
前言: nano
是簡單好用的文件編輯器,但熟練vim
後會讓你在編輯處理上更得心應手。大部份內容取自鳥哥的vim 程式編輯器 教學
vim編輯器三種模式: centos7_vi-mode.gif
如圖示(來自鳥哥 ) ESC
是退回到一般模式
,編輯模式
、命令模式
切換都要經一般模式才可以。
2020-06-23_112920.png
[[h]] 或 向左方向鍵(←) 游標向左移動一個字元 [[j]] 或 向下方向鍵(↓) 游標向下移動一個字元 [[k]] 或 向上方向鍵(↑) 游標向上移動一個字元 [[l]] 或 向右方向鍵(→) 游標向右移動一個字元
如向下移動 20 列,可以使用 "20j" 或 "20↓" 的組合按鍵即可! 2020-06-23_150634.png
[[Ctrl]] + [[f]] 螢幕『向下』移動一頁,相當於 [Page Down]按鍵 [[Ctrl]] + [[b]] 螢幕『向上』移動一頁,相當於 [Page Up] 按鍵 [[0]] 或功能鍵[[Home]] 這是數字『 0 』:移動到這一行的最前面字元處 [[$]] 或功能鍵[[End]] 移動到這一行的最後面字元處 [[gg]] 移動到這個檔案的第一行,相當於 1G 啊! [[G]] 移動到這個檔案的最後一行 [[n]]+[[Enter]] n 為數字。游標向下移動 n 行
/word
向游標之下尋找一個名稱為 word 的字串。
使用 /word 配合 n(向下搜尋下一個) 及 N (向前搜尋上一個),可以讓你重複的找到一些你搜尋的關鍵字! :1,20s/word1/word2/g
在第 1 與 20 列之間尋找 word1 這個字串,並將該字串取代為 word2 :1,$s/word1/word2/g
從第一列到最後一列尋找 word1 字串,並將該字串取代為 word2 :1,$s/word1/word2/gc
同上,但在取代前顯示確認 (confirm) 是否需要取代! :10,22s/^/#/g
起始行號(10),結束行號(22)s/^/註釋符/g
插入註釋。
一般模式 (normal mode) 註解 :g/^$/d
刪除空白行。 :g/^\s*$/d
刪除空白行和只有空格[Space]沒有內容的空白行。
[[x]],[[X]] x 為向後刪除一個字元 (相當於 [del] 按鍵),X 為向前刪除一個字元(相當於 [Backspace ]鍵) dd
刪除游標所在的那一整行 ndd
n 為數字。刪除游標所在的向下 n 列,例如 20dd 則是刪除 20 行 yy
複製游標所在的那一行 nyy
n 為數字。複製游標所在的向下 n 列,例如 20yy 則是複製 20 行 [[p]],[[P]] p 為將已複製的資料在游標下一列貼上,P 則為貼在游標上一行 [[u]] 復原前一個動作 [[Ctrl]]+[[r]] 重做上一個動作 [[.]] 是小數點!意思是重複前一個動作的意思
返回
左下角處會出現INSERT
或REPLACE
的字眼 [[i]],[[I]] 進入插入模式(Insert mode): i 為『從目前游標所在處插入』, I 為『在目前所在行的第一個非空白字元處開始插入』。 [[a]],[[A]] 進入插入模式(Insert mode): a 為『從目前游標所在的下一個字元處開始插入』, A 為『從游標所在行的最後一個字元處開始插入』 [[o]],[[O]] 進入插入模式(Insert mode): 這是英文字母 o 的大小寫。o 為『在目前游標所在的下一行處插入新的一行』; O 為在目前游標所在處的上一行插入新的一行 [[r]],[[R]] 進入取代模式(Replace mode): r 只會取代游標所在的那一個字元一次;R會一直取代游標所在的文字,直到按下 ESC 為止; [[Esc]] 退出編輯模式(回到一般模式)
返回
:w
將編輯的資料寫入硬碟檔案中 :q
離開 vi :wq
儲存後離開,若為 :wq! 則為強制儲存後離開 :set nu
顯示行號,設定之後,會在每一列的字首顯示該列的行號 :set nonu
與 set nu 相反,為取消行號! :! command
暫時離開 vim 執行 command 的顯示結果!
返回
bash的工作管理
可以在Terminal
中自由切換到不同工作任務。 如: 在vim
使用中暫時退到背景(background)
中執行,待複製好資料後,再執行vim
的工作為前景(foreground)
,貼上剛才複製的內容。常見的工作管理使用的符號與組合按鍵如下: 組合按鍵 作用 command &
直接將 command 丟到背景中執行 [ctrl]
+ z
將目前執行的工作丟到背景中暫停 jobs
-l
列出目前的工作資訊 fg
%n
將第 n 個在背景當中的工作移到前景來操作 bg
%n
將第 n 個在背景當中的工作變成執行中
返回
額外 - The Ultimate vimrc
美化vim
讓vim
更賞心悅目! git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_awesome_vimrc.sh
2021-07-08_091111.png
來自大佬: amix / vimrc
Vim 的另一選擇 Neovim Neovim 是一個旨在積極重構 Vim 的項目,以便: 簡化維護並鼓勵貢獻 在多個開發人員之間拆分工作 在不修改核心的情況下啟用高級用戶界面 最大化可擴展性 有關詳細信息,請參閱介紹 wiki 頁面和路線圖。 neovim
安裝 Neovim
sudo apt install neovim -y
安裝外掛管理器 vim-plugvim-plug
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
Neovim 的組態檔案目錄
mkdir -p .config/nvim
Neovim 的組態檔案
vi .config/nvim/init.vim
Neovim 的組態檔案內容
call plug#begin()
" below are some vim plugin for demonstration purpose
Plug 'joshdick/onedark.vim'
Plug 'iCyMind/NeoSolarized'
Plug 'tpope/vim-commentary'
Plug 'octol/vim-cpp-enhanced-highlight'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
call plug#end()
也可以新增更多個性化設定
" => Colors and Fonts
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Enable syntax highlighting
syntax enable
" Set colorscheme
set background=dark
colorscheme desert
" Set utf8 as standard encoding and en_US as the standard language
set encoding=utf8
" Use Unix as the standard file type
set ffs=unix,dos,mac
" Enable status bar color
set t_Co=256
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim Airline themes
let g:airline_theme='luna'
let g:airline_powerline_fonts=1
let g:airline#extensions#tabline#enabled=1
" Vim Cpp Highlight
let g:cpp_class_scope_highlight=1
let g:cpp_member_variable_highlight=1
let g:cpp_experimental_simple_template_highlight=1
let g:cpp_concepts_highlight=1
重新打開 Neovim,然後執行
:PlugInstall
所有要安裝的外掛都會被安裝到目錄
一鍵安裝 Neovm 及 插件 這是安裝 Neovim 和 Vim-Plug 插件管理器的 Bash Script. 安裝一些流行的 Neovim 插件 (可根據自己喜好刪減):vim-plugin
#!/bin/bash
# Program:
# Automatically install Neovim and vim-plug (basic).
# Author:
# King Tam (https://kingtam.win)
# History:
# Mar/22/2023 First release
# Define the required packages
packages=(curl git neovim)
# Define the package managers and their update commands
declare -A package_managers=(
[apt-get]="sudo apt-get"
[dnf]="sudo dnf"
[pacman]="sudo pacman -S"
)
# Detect the package manager and install the packages
for package_manager in "${!package_managers[@]}"
do
if command -v "$package_manager" &> /dev/null
then
${package_managers[$package_manager]}
sudo "$package_manager" install -y "${packages[@]}"
break
fi
done
# Check if the operating system is CentOS
if [ "$(awk -F= '/^ID=/{print $2}' /etc/os-release)" == "\"centos\"" ]; then
# Install Neovim and Python3-Neovim using YUM
echo "Detected CentOS Linux. Installing Neovim..."
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo yum update -y
sudo yum install -y neovim python3-neovim
fi
# Install Vim-Plug plugin manager
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
# Create Neovim configuration file and add plugins
mkdir -p ~/.config/nvim
if [ ! -f ~/.config/nvim/init.vim ]; then
touch ~/.config/nvim/init.vim
fi
cat <<EOT >> ~/.config/nvim/init.vim
call plug#begin('~/.local/share/nvim/plugged')
" Add plugins here
Plug 'scrooloose/nerdtree'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'joshdick/onedark.vim'
Plug 'tpope/vim-commentary'
Plug 'octol/vim-cpp-enhanced-highlight'
call plug#end()
EOT
# Install plugins using Vim-Plug
nvim +PlugInstall +qall
在這個Script中:
使用 apt-get
包管理器安裝 Neovim。 然後我們安裝 Vim-Plug,這是 Vim 和 Neovim 的流行插件管理器。 創建一個 Neovim 配置文件 (~/.config/nvim/init.vim
) 並向其中添加一些流行的插件。
在這個例子中,我們添加了 NERDTree 文件瀏覽器、Airline 主題 和 Airline 狀態欄插件等等。 使用 nvim
命令通過 Vim-Plug 安裝插件。
+PlugInstall
參數告訴 Neovim 安裝配置文件中定義的插件,+qall
參數告訴 Neovim 安裝完成後退出。手動或者一鍵執行Neovim.sh腳本 將腳本的內容保存在文件中,例如 neovim.sh。 使用 chmod +x neovim.sh 使腳本可執行。 以 root 身份或使用 sudo 運行腳本:sudo ./neovim.sh。 此外,我們可以在終端中使用單個命令行。 (需要Root或者sudo權限)
curl -O https://kingtam.win/usr/uploads/script/neovim.sh && chmod +x neovim.sh && ./neovim.sh
此命令將從 URL地址下載腳本,使其可執行,然後運行它。 如果任何命令失敗,則不會執行後續命令。 參考資料: Vim Cheat Sheet
鳥哥私房菜 - 檔案管理與 vim 初探
junegunn / vim-plug
我的Vim配置