Linux——vi的使用

来源:http://www.cnblogs.com/shea/archive/2017/04/28/6761192.html
-Advertisement-
Play Games

記錄一下vi的一些使用指令,藍色部分是比較常用的,其中使用過的重新進行了描述,極少部分是未使用過的,還有一些未使用也未記錄進來,後續再來補充修正: 參考資料:http://cn.linux.vbird.org/linux_basic/0310vi_2.php vi分三種模式:一般模式、編輯模式、指令 ...


記錄一下vi的一些使用指令,藍色部分是比較常用的,其中使用過的重新進行了描述,極少部分是未使用過的,還有一些未使用也未記錄進來,後續再來補充修正:

參考資料:http://cn.linux.vbird.org/linux_basic/0310vi_2.php

vi分三種模式:一般模式、編輯模式、指令列命令模式,作用如下:

一般模式:

  以vi 打開一個文檔就直接進入一般模式了即預設模式,在此模式中,可以使用 【上、下、左、右】按鍵來移動游標,可以使用 【刪除字元】或【刪除整行】來處理內容,也可以使用【複製、粘貼】來處理文件數據。

編輯模式:

  在預設模式中,可以進行刪除、複製、粘貼等操作,但是無法編輯文件內容,要等按下【i,I,o,O,a,A,r,R】等任何一個字母之後才會進入編輯模式。通常在Linux中,按下這些按鍵的時候,在畫面的左下方會出現【INSERT 或 REPLACE】等字樣,此時才可以進行編輯。如果要退出編輯模式,回到預設模式,按下[ESC]按鍵即可。

指令列命令模式:

  在預設模式中,輸入【:/?】三個中的任何一個,就可以將游標移動到最底下的那一行。在這個模式中,可以提供你【搜索資料】的動作,讀取、存檔、大量取代字元、離開vi、顯示行號等等的動作則是在此模式中達成的。

註:一般模式即預設模式可與編輯模式及指令列命令模式切換,但編輯模式與指令列命令模式之間不可互相切換。

按鍵說明

一般模式可用的按鈕說明,游標移動、複製粘貼、搜索取代等:

移動游標的方法:

h 或 向左箭頭鍵   : 游標向左移動一個字元,多次移動,【h 或 向左箭頭鍵】前加要移動的次數,比如,5h ,向左移動5個字元。

j  或 向下箭頭鍵  :  游標向下移動一行,多行移動,【j 或 向下箭頭鍵】前加要移動的行數,比如,10j,向下移動10行。

k 或 向上箭頭鍵   :   游標向上移動一行,多行移動,【k或 向上箭頭鍵】前加要移動的行數,比如,16k,向上移動16行。

l  或 向右箭頭鍵  :  游標向右移動一個字元,多次移動,【l  或 向右箭頭鍵】前加要移動的次數,比如,10l,向右移動10個字元。

【CTRL】+【f】 :  屏幕向下移動一頁,相當於【Page Down】按鍵。

【CTRL】+【b】:  屏幕向上移動一頁,相當於【Page Up】按鍵。

【CTRL】+【d】:  屏幕向下移動半頁。

【CTRL】+【u】:  屏幕向上移動半頁。

+        : 游標移動到非空格符的下一列。

-             : 游標移動到非空格符的上一列。

n<space>   :   n 表示數字。按下數字後再按下空格鍵,游標會向右移動到這一行的第n個字元。

註:n<space>與 h、l 在Centos6.8中的區別在於,前者:如果移動的字元超過該行另起一行繼續移動剩餘的字元,後者則不會。

0或【HOME】鍵 :  數字0,移動到這一行的最前面字元處。

$或【END】鍵    :  移動到這一行的最後面字元處。

H           :  游標移動到當前屏幕的最上方那一行的第一個字元處。  

M             :   游標移動到當前屏幕的中央一行的第一個字元處。

L          :   游標移動到當前屏幕的最下方一行的第一個字元處。

G             : 移動到當前文檔的最後一行。

nG       : n為數字,移動到當前文檔的第n行。

gg        : 移動到當前文檔的第一行。

n<ENTER>     :  n為數字,游標向下移動n 行

搜索與取代:

/word  :  在游標之下【向下】尋找一個名為word的字元串。定位到第一個該單詞出現的位置處。

?word  :  在游標之上【向上】尋找一個名為word的字元串。定位到第一個該單詞出現的位置處。

n    :  n,英文按鍵,重覆前一個搜索的動作。繼續執行搜索。

N     :  N,英文按鍵,反向重覆前一個搜索的動作。反向繼續執行搜索。

:n1,n2s/world1/word2/g  :  n1與n2是數字,在第n1到n2之間尋找world1字元串,並將該字元串替換為word2.

:1,$s/world1/word2/g    :  從第一行到最後一行尋找字元串world1,並將該字元串替換為word2。全局替換。

:1,$s/world1/word2/gc    :  從第一行到最後一行尋找字元串world1,並將該字元串替換為word2,替換之前提示用戶是否確認替換。全局替換,提示是否替換。

刪除、複製、粘貼:

x,X  :  在一行字當中,x 向後刪除一個字元,相當於【DEL】鍵,X 向前刪除一個字元,相當於【BACKSPACE】鍵。

nx   :  n為數字,連續向後刪除n個字元。

dd   :  刪除游標所在行一整行。

ndd   :  n數字,刪除游標所在行向下n行。包括游標所在行。

d1G    :  刪除游標所在行到第一行的所有數據。包括游標所在行。

dG  :  刪除游標所在行到最後一行的所有數據.包括游標所在行。

d$  :  刪除游標所在處到該行的最後一個字元。

d0  :  0數字0,刪除游標所在處,到該行的最前面的一個字元。

yy  :  複製游標所在那一行的內容

nyy  :  n為數字,複製游標所在行向下n行數據,包括游標所在行。      

y1G   :  複製游標所在行到第一行的所有數據。

yG   :  複製游標所在行到最後一行的所有數據。

y0   :  複製游標所在處字元到該行行首的所有數據。

y$   :  複製游標所在處字元到該行行末的所有數據。

p   :  將已複製的數據在游標所在下一行粘貼。

P   :  將已複製的數據在游標所在上一行粘貼。

u   :  複原上一個動作。

[ctrl]+r: 重做上一個動作。

.   :  小數點,重覆前一個動作。

一般模式切換到編輯模式可用按鈕:

i,I  :  進入編輯模式進行插入操作,i在游標所在處插入,I 游標所在行第一個非空格符處開始插入。

a,A  :  進入編輯模式進行插入操作,a游標所在的下一個字元處開始插入,A游標所在行最後一個字元處開始插入。

o,O  :  進入編輯模式進行插入操作,小寫英文字母o當前游標所在行後插入新的一行,大寫字母O當前游標所在行前插入新的一行。

r,R   :  進入編輯模式進行取代操作,r替換游標所在的字元一次,R替換游標所在的字元,直到【ESC】為止。

註:進入編輯模式, vi畫面的左下角會出現【--INSERT--】或【--REPLACE--】的字樣。

[ESC]:  退出編輯模式,進入一般模式中。

 一般模式切換到指令列模式可用按鈕:

指令列的存儲、離開等指令:

:w        :  將編輯的數據寫入硬碟文檔中。

:wq        :  存儲後離開。:wq!強制存儲後離開

:q            :  離開vi

:q!         :  強制離開且不存儲文檔修改過的內容。

ZZ         :  若文檔有改動,則存儲後離開,若未改動,則不存儲離開。

:w[filename]    :  將編輯的數據存儲為另一個文檔

vim環境的變更:

:set nu    :  顯示行號。

:set nonu    :  取消行號。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 層次結構數據定義為一組通過層次結構關係互相關聯的數據項。 在層次結構關係中,一個數據項是另一個項的父級或子級。 sql server2008開始內置的 hierarchyid 數據類型使存儲和查詢層次結構數據變得更為容易。hierarchyid 其實是 CLR 數據類型。 廢話不多說,看不明白就實際 ...
  • 收錄待用,修改轉載已取得 "騰訊雲" 授權 昨天趁著周末把 "伺服器" 升級了一把,遇到的坑可不少: 坑1:升級失敗後,改用下麵命令: 坑2:若中間配置失敗,再可以執行: 坑3:若下載包資源失敗,則修改資源文件列表: 例如這是 "騰訊伺服器" 的: 坑4:這時再返回來執行 ,而不是 包下載完畢後會自 ...
  • 在我們實際工作中,好多時間需要經常性的進入某個目錄查看文件等等之類的操作。 好多時候我們都是在終端一級一級的進入目錄,相比較Windows的快捷方式有點繁瑣。 廢話少說,下麵就是設置快捷方式的方法: 在終端家目錄打開.bashrc 後者是.zshrc,任意位置輸入下麵的示例: 例:alias www ...
  • 一. 創建互動式腳本 使用 echo命令的選項 關於各種命令的使用,可以使用 來查看命令的詳細用法介紹。例如,我想看下 echo 的用法和各種選項。可以執行 。執行結果如下: 如果單獨執行 echo 命令,就會列印出一個空白行。 預設情況下,echo 都會換行,如果不想換行的話,可以使用下麵兩種方式 ...
  • 內核之中數據結構之間的關係錯綜複雜,畫的有點亂。 ...
  • 一、Linux防火牆配置文件及命令 1、RedHat Linux系統 此類型系統包含red hat 的各類衍生及相關版本,包括,RHEL,CentOS,Fedrora等。 防火牆配置文件:/etc/sysconfig/iptables-config 服務操作命令:etc/init.d/iptable ...
  • 昨天一室友裝office2016不會激活,【嘲諷臉】真的是笨啊。我這是在一個社區論壇裡面找到的。 在網上找了教程,有些沒用的,所以記錄安裝教程以便之後查看。以下的安裝激活親測有效(2017-4-28)喲! office2016的界面風格用起來還真蠻舒服的,點個贊。 安裝包下載:鏈接:http://p ...
  • 一、yum安裝svn yum -y install subversion 二、查看已安裝的svn版本信息 svnserve --version 三、創建一個代碼庫 1.先創建一個目錄 mkdir -p /home/test 2.創建版本庫 svnadmin create /home/test 執行上 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...