Linux 的命令基本用法 - vim 編輯器Vimlogo.png前言:nano是簡單好用的文件編輯器，但熟練vim後會讓你在編輯處理上更得心應手。大部份內容取自鳥哥的vim 程式編輯器教學 vim編輯器三種模式:一般模式 (normal mode)一般模式可以移動光標，複製、貼上、刪除等動作編輯模式 (insert mode)可以進行文件編輯(即一般模式以外的動作)命令模式 (command-line mode)可以進行顯示行數、搜尋、替換、儲存及退出等動作centos7_vi-mode.gif如圖示(來自鳥哥) ESC 是退回到一般模式，編輯模式、命令模式切換都要經一般模式才可以。一般模式 (Normal mode)按鍵說明移動游標的方法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刪除游標所在的那一整行nddn 為數字。刪除游標所在的向下 n 列，例如 20dd 則是刪除 20 行yy複製游標所在的那一行nyyn 為數字。複製游標所在的向下 n 列，例如 20yy 則是複製 20 行[[p]],[[P]]p 為將已複製的資料在游標下一列貼上，P 則為貼在游標上一行[[u]]復原前一個動作[[Ctrl]]+[[r]]重做上一個動作[[.]]是小數點！意思是重複前一個動作的意思返回編輯模式 (insert mode)左下角處會出現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]]退出編輯模式(回到一般模式)返回命令模式 (command-line mode):w將編輯的資料寫入硬碟檔案中:q離開 vi:wq儲存後離開，若為 :wq! 則為強制儲存後離開:set nu顯示行號，設定之後，會在每一列的字首顯示該列的行號:set nonu與 set nu 相反，為取消行號！:! command暫時離開 vim 執行 command 的顯示結果！ 返回額外: 配合bash的工作管理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.sh2021-07-08_091111.png來自大佬: amix / vimrcVim 的另一選擇 NeovimNeovim 是一個旨在積極重構 Vim 的項目，以便：簡化維護並鼓勵貢獻在多個開發人員之間拆分工作在不修改核心的情況下啟用高級用戶界面最大化可擴展性有關詳細信息，請參閱介紹 wiki 頁面和路線圖。neovim安裝 Neovimsudo apt install neovim -y安裝外掛管理器 vim-plugvim-plugsh -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/nvimNeovim 的組態檔案vi .config/nvim/init.vimNeovim 的組態檔案內容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配置