Linux實驗二:vi編輯器的使用

文章目錄

  • 一、實驗目的
  • 二、實驗要求
  • 三、實驗內容
    • 1、創建文件
    • 2、編輯文件


一、實驗目的

1、練習并掌握Linux提供的vi編輯器來編譯C程序

2、學會利用gcc、gdb編譯、調試C程序

3、本次實驗的目的是讓同學們了解如何使用vi編輯器進行創建和編輯文件


二、實驗要求

1、文件編輯器vi的工作模式

(1)輸入模式

(2)命令模式

(3)ex轉義模式

2、命令模式下光標的移動

3、命令模式下的編輯命令


三、實驗內容

1、創建文件

(1)使用vi創建一個名為vitest的文件,文件的內容自己錄入。需要輸入多行來學習編輯器的常用命令

命令:
vi vitest
進入如下圖的vi編輯器界面,之后根據需求自己輸入文件內容
在這里插入圖片描述
編輯模式
在這里插入圖片描述

(2)返回命令行格式,寫入并且退出文件。注意,當你輸入”:”的時候,它將出現在你輸入區域的最后一行。一旦這個緩沖區是空的并且文件被關閉了,你將看到一個包含有該文件的行數和字符數的消息。

在編輯模式下用Esc鍵退出到命令模式
輸入“:”(進入到ex轉義模式),輸入wq(w寫入,q退出)
在這里插入圖片描述

2、編輯文件

(1)打開vitest,注意屏幕的底端將會顯示文件名和字符數,使用[h],[j],[k],[i]鍵,練習在文件中進行光標移動

起始位置:
在這里插入圖片描述
K兩次:
在這里插入圖片描述
J一次:
在這里插入圖片描述
L兩次:
在這里插入圖片描述
H一次:在這里插入圖片描述

(2)顯示行數,并且讓光標停在第四行

:set nu
在這里插入圖片描述
:4
在這里插入圖片描述

(3)刪除單個字符,刪除整行,刪除多行

X
在這里插入圖片描述
dd
在這里插入圖片描述
2dd
在這里插入圖片描述

(4)進行文字的復制、移動、粘貼操作

yyjjjjp
yy復制光標所在的行 jjjj向下移動四行 p粘貼在光標后,P粘貼在光標前
在這里插入圖片描述

(5)對文本內容進行修改

r 替換光標位置上的一個字符
在這里插入圖片描述
R 替換從光標位置開始的連續字符(進入替換模式,退出需用Esc)在這里插入圖片描述
s 替換光標位置上的1個字符(進入輸入模式INSERT,退出需用Esc)
在這里插入圖片描述

(6)使用 :r 、 :w 、 :e 命令同時編輯多個文檔。

test1文件:
在這里插入圖片描述
test2文件:
在這里插入圖片描述
在test2中通過此命令進入test1(同理test1中可通過e test2進入test2文件)
在這里插入圖片描述
在test1中進入ex模式輸入r test2
在這里插入圖片描述
在test1中進入ex模式輸入w后保存修改,之后進入ex模式輸入e #(返回到上一個編輯文件)進入test2
在這里插入圖片描述
在test2中進入ex模式輸入r test1(將test1內容復制到test2緩沖區中光標的位置)
在這里插入圖片描述
在test2中進入ex模式輸入w>> test2(將當前緩沖區的內容附加到test2末尾)保存修改之后進入ex模式輸入x(保存修改并退出)退出vim

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443890.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443890.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443890.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

百戰c++(os1)

Linux中的鎖 互斥鎖:mutex,用于保證在任何時刻,都只能有一個線程訪問該對象。當獲取鎖操作失敗時,線程會進入睡眠,等待鎖釋放時被喚醒 讀寫鎖:rwlock,分為讀鎖和寫鎖。處于讀操作時&#xff0…

Linux實驗三:Shell編程

文章目錄一、實驗目的二、實驗要求三、實驗內容1、通配符的使用2、重定向3、管道4、shell變量5、建立下面的腳本,運行并分析輸出結果,并給出代碼注釋。6、編寫腳本一、實驗目的 1.為文件擴展名使用通配符 2.標準輸入、標準輸出和標準錯誤的重定向 3.使…

a href=#與 a href=javascript:void(0) 的區別

a href"#"> 點擊鏈接后&#xff0c;頁面會向上滾到頁首&#xff0c;# 默認錨點為 #TOP<a href"javascript:void(0)" onClick"window.open()"> 點擊鏈接后&#xff0c;頁面不動&#xff0c;只打開鏈接<a href"#" οnclick&…

Linux實驗四:編譯和調試工具的使用

文章目錄一、實驗目的&#xff1a;二、實驗要求三、實驗內容四、實驗操作1、用gcc編譯程序&#xff0c;寫出編譯過程&#xff0c;并給出運行結果。2、調試程序&#xff0c;要求用gdb進行調試并給出修改方案。3、make的使用一、實驗目的&#xff1a; 1、練習并掌握Linux提供的v…

Linux實驗五:Linux環境下的C語言編程

文章目錄一、實驗目的&#xff1a;二、實驗要求三、實驗內容1、編寫一段C語言程序使其完成&#xff1a;父進程創建兩個子進程&#xff0c;每個進程都在屏幕上顯示自己的進程ID號。2、上機調試下面的程序&#xff0c;觀察運行結果&#xff0c;分析原因。3、利用兩個管道進行雙向…

百戰c++(4)

1.求下面函數的返回值&#xff08;微軟&#xff09; int func(x) { int countx 0; while(x) { countx ; x x&(x-1); } return countx; } 假定x 9999。 答案&#xff1a;8 思路&#xff1a;將x轉化為2進制&#xff0c;看含有的1的個數。 2. 什么是“引用”&…

ndarray對象的建立

文章目錄ndarray&#xff08;別名array&#xff09;常用屬性創建NumPy數組使用array()函數使用zeros()函數使用ones()函數使用empty()函數使用arange()函數注意ndarray&#xff08;別名array&#xff09; 常用屬性 import numpy as np # Numpy工具包data np.arange(12).res…

百戰c++(5)

11. 已知strcpy的函數原型&#xff1a;char *strcpy(char *strDest, const char *strSrc)其中strDest 是目的字符串&#xff0c;strSrc 是源字符串。不調用C/C 的字符串庫函數&#xff0c;請編寫函數 strcpy。 答案&#xff1a; char *strcpy(char *strDest, const char *strS…

Numpy數組的廣播機制

文章目錄前言數組廣播廣播機制的使用條件前言 Numpy數組不需要循環遍歷&#xff0c;即可對每個元素執行批量的算術運算操作&#xff08;矢量化運算&#xff09;。當兩個數組大小&#xff08;Numpy.shape&#xff09;不同時&#xff0c;進行算術運算會出現廣播機制。 數組廣播…

百戰c++(6)

26. 描述內存分配方式以及它們的區別? 1&#xff09; 從靜態存儲區域分配。內存在程序編譯的時候就已經分配好&#xff0c;這塊內存在程序的整個運行期間都存在。例如全局變量&#xff0c;static 變量。 2&#xff09; 在棧上創建。在執行函數時&#xff0c;函數內局部變量的…

Spring3.1.0+Quartz1.8.6整合實現計劃任務

1.首先要加入任務計劃的相關的jar包&#xff0c;這里除了需要加Spring3.1.0的jar&#xff0c;還需要加quartz-all-1.8.6.jarslf4j-api-1.5.8.jar slf4j-log4j12.jar這三個包&#xff0c;如果你是SSH整合的項目&#xff0c;里面有下面的兩個包了&#xff0c;就可以不加&#xff…

百戰c++(7)

40. 鏈表題&#xff1a;一個鏈表的結點結構 struct Node { int data ; Node *next ; }; typedef struct Node Node ; (1)已知鏈表的頭結點head,寫一個函數把這個鏈表逆序 ( Intel) Node * ReverseList(Node *head) //鏈表逆序 { if ( head NULL || head->next NU…

數組的轉置和軸對稱

文章目錄T屬性transpose()方法swapaxes()方法T屬性 import numpy as np # Numpy工具包data np.arange(12).reshape(3, 4) # 創建一個3行4列的數組 print(data)# 數組的轉置和軸對稱 data1 data.T print(data1)print(data) [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] print(dat…

百戰c++(8)

43. 寫一個在一個字符串(n)中尋找一個子串(m)第一個位置的函數。 KMP算法效率最好&#xff0c;時間復雜度是&#xff2f;(nm)。 44. 多重繼承的內存分配問題&#xff1a; 比如有class A : public class B, public class C {} 那么A的內存結構大致是怎么樣的&#xff1f; 這…

管道實現父子進程的信息傳遞(一)【fork函數、pipe函數、write/read操作、wait函數】

文章目錄題目描述代碼實現關于pipe函數關于讀寫操作關于讀寫端口關于wait函數功能&#xff1a;注意&#xff1a;關于fork函數題目描述 編寫一個程序&#xff0c;利用管道實現父子進程的通信&#xff0c;父進程向子進程發送信息&#xff0c;由子進程輸出顯示。 代碼實現 #inclu…

基礎的shell編程問題(一)

文章目錄題目一題目描述代碼實現關于$#的有關內容實測本程序的作用題目二題目描述代碼實現注釋關于argc、argv關于read函數關于文件描述符關于write函數本程序的作用題目三題目描述代碼實現實測關于grep命令關于read命令題目四題目描述代碼實現關于test命令實測題目一 題目描述…

百戰c++(9)

12 . 下面的代碼輸出是什么&#xff0c;為什么&#xff1f; void foo(void) { unsigned int a 6; int b -20; (ab > 6) puts("> 6") : puts("< 6"); } 這個問題測試你是否懂得C語言中的整數自動轉換原則&#xff0c;我發現有些開發者懂得…

基礎的shell編程問題(二)

文章目錄題目一題目描述代碼實現結果驗證關于本題題目二題目描述代碼實現結果測試題目三題目描述代碼實現及結果測試題目四題目描述代碼實現及結果測試題目五題目描述代碼實現及結果測試題目一 題目描述 輸入的命令行參數必須是hello&#xff0c;才會正確顯示&#xff1b;否則…

百戰c++(10)

1.多態類中的虛函數表是Compile-Time&#xff0c;還是Run-Time時建立的? 2.將一個 1M -10M 的文件&#xff0c;逆序存儲到另一個文件&#xff0c;就是前一個文件的最后一個 字符存到新文件的第一個字符&#xff0c;以此類推。 3.main主函數執行完畢后&#xff0c;是否可能會…

Numpy實現酒鬼漫步問題【以及randint()、where()、cumsum()、argmax()的用法詳解】

文章目錄題目描述代碼實現關于本題涉及到的幾個函數randint()where()cumsum()題目拓展題目描述代碼實現題目拓展題目描述代碼實現argmax()題目描述 從前有一個酒鬼&#xff0c;喝醉了行走在一條直線上&#xff0c;每走一步方向是不確定的&#xff08;向前或者向后&#xff09;…