日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第二周学习过程总结

發布時間:2024/10/12 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第二周学习过程总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.重點知識點梳理:

? ? ? ? ? GCC編譯的四個步驟:預處理(gcc -E)、編譯(gcc -S)、匯編(gcc -c)、鏈接

? ? ? ? ? 靜態鏈接庫的生成:ar rcsv libxxx.a xxx.o ?

? ? ? ? ? 共享庫的生成 gcc -fPIC -c xxx.c

快速記憶

Vim:

Vim具有6種基本模式和5種派生模式,我們這里只簡單介紹下6種基本模式:

  • 普通模式(Normal mode)
  • 插入模式(Insert mode)
  • 可視模式(Visual mode)
  • 選擇模式(Select mode)
  • 命令行模式(Command line mode)
  • Ex模式(Ex mode)

三種常用模式的切換:

vim啟動進入普通模式,處于插入模式或命令行模式時只需要按Esc或者Ctrl+[(這在vim課程環境中不管用)即可進入普通模式。普通模式中按i(插入)或a(附加)鍵都可以進入插入模式,普通模式中按:進入命令行模式。命令行模式中輸入wq回車后保存并退出vim。

幾個快捷鍵:

  • 大寫“K”可以用來查找函數的幫助信息:查看?man?page,命令模式下,將光標放在函數名上,按"K"可以直接察看?man?page。
  • 幾個設置

:set?nu?顯示行號

:set?ai?自動縮行

:set?ts=4?設置一個?TAB?鍵等于幾個空格

  • 移動光標

[[?轉到上一個位于第一列的"{"

]]?轉到下一個位于第一列的"{"

{?轉到上一個空行

}?轉到下一個空行

gd?轉到當前光標所指的局部變量的定義。

進入vim:

(1)使用vim命令進入vim:

vim后面加上你要打開的已存在的文件名或者不存在(則作為新建文件)的文件名。 打開Xfce終端,輸入以下命令

$ vim practice_1.txt

直接使用vim也可以打開vim編輯器,但是不會打開任何文件。

$ vim

進入命令行模式后輸入:e 文件路徑?同樣可以打開相應文件。

(2)游標移動

在進入vim后,按下i鍵進入插入模式。在該模式下您可以輸入文本信息,下面請輸入如下三行信息:

12345678 abcdefghijk shiyanlou.com

按Esc進入普通模式,在該模式下使用方向鍵或者h,j,k,l鍵可以移動游標。

按鍵說明
h
l右(小寫L)
j
k
w移動到下一個單詞
b移動到上一個單詞

請嘗試在普通模式下使用方向鍵移動光標到shiyanlou這幾個字母上面。

(3)插入模式

在普通模式下使用下面的鍵將進入插入模式,并可以從相應的位置開始輸入

命令說明
i在當前光標處進行編輯
I在行首插入
A在行末插入
a在光標后插入編輯
o在當前行后插入一個新行
O在當前行前插入一個新行
cw替換從光標所在位置后到一個單詞結尾的字符

請嘗試不同的從普通模式進入插入模式的方法,在最后一行shiyanlou前面加上www.,注意每次要先回到普通模式才能切換成以不同的方式進入插入模式

(4)保存文檔

從普通模式輸入:進入命令行模式,輸入w回車,保存文檔。輸入:w 文件名可以將文檔另存為其他文件名或存到其它路徑下。

(5)退出

從普通模式輸入:進入命令行模式,輸入wq回車,保存并退出編輯

以下為其它幾種退出方式:

命令說明
:q!強制退出,不保存
:q退出
:wq!強制保存并退出
:w <文件路徑>另存為
:saveas 文件路徑另存為
:x保存并退出
:wq保存并退出

?

普通模式下輸入Shift+zz即可保存退出vim

(6)刪除

進入普通模式,使用下列命令可以進行文本快速刪除:

命令說明
x刪除游標所在的字符
X刪除游標所在前一個字符
Delete同x
dd刪除整行
dw刪除一個單詞(不適用中文)
d$或D刪除至行尾
d^刪除至行首
dG刪除到文檔結尾處
d1G刪至文檔首部

除此之外,你還可以在命令之前加上數字,表示一次刪除多行,如:

2dd表示一次刪除2。

gcc

我們可以把編譯過程分成四步:

  • 預處理:gcc?–E?hello.c?–o?hello.i;gcc?–E調用cpp
  • 編?譯:gcc?–S?hello.i?–o?hello.s;gcc?–S調用ccl
  • 匯?編:gcc?–c?hello.s?–o?hello.o;gcc?-c?調用as
  • 鏈?接:gcc?hello.o?–o?hello?;gcc?-o?調用ld

gdb

GDB最基本的命令有:

  • gdb?programm(啟動GDB)
  • b?設斷點(要會設4種斷點:行斷點、函數斷點、條件斷點、臨時斷點)
  • run?開始運行程序
  • bt?打印函數調用堆棧
  • p?查看變量值
  • c?從當前斷點繼續運行到下一個斷點
  • n?單步運行
  • s?單步運行
  • quit?退出GDB

調試命令:

  • display?跟蹤變量值的改變
  • until?跳出循環
  • finish?跳出函數
  • help?幫助

?

2.詳細介紹

vim重復命令

重復執行上次命令

在普通模式下.(小數點)表示重復上一次的命令操作

拷貝測試文件到本地目錄

$ cp /etc/protocols .

打開文件進行編輯

$ vim protocols

普通模式下輸入x,刪除第一個字符,輸入.(小數點)會再次刪除一個字符,除此之外也可以重復dd的刪除操作

執行指定次數相同的命令

進入普通模式輸入N<command>,N表示重復后面的次數,下面來練習以下:

在普通模式下,你還可以使用dw或者daw(delete a word)刪除一個單詞,所以你可以很容易的聯想到dnw(n替換為相應數字)表示刪除n個單詞

游標的快速跳轉

普通模式下,下列命令可以讓光標快速調轉到指定位置,我們分別討論快速實現行間跳轉和行內跳轉

行間跳轉

命令說明
nG(n Shift+g)游標移動到第 n 行(如果默認沒有顯示行號,請先進入命令模式,輸入:set nu以顯示行號)
gg游標移動到到第一行
G(Shift+g)到最后一行

?

小技巧:你在完成依次跳轉后,可以使用Ctrl+o快速回到上一次(跳轉前)光標所在位置,這個技巧很實用,比如當你在寫代碼時,忽然想起有個bug,需要修改,這時候你跳過去改好了,只需要按下Ctrl+o就可以回到你之前的位置。vim中會用很多類似的小技巧就等著你去發掘。

行內跳轉

普通模式下使用下列命令在行內按照單詞為單位進行跳轉

命令說明
w到下一個單詞的開頭
e到下一個單詞的結尾
b到前一個單詞的開頭
ge到前一個單詞的結尾
0或^到行頭
$到行尾
f<字母>向后搜索<字母>并跳轉到第一個匹配的位置(非常實用)
F<字母>向前搜索<字母>并跳轉到第一個匹配的位置
t<字母>向后搜索<字母>并跳轉到第一個匹配位置之前的一個字母(不常用)
T<字母>向前搜索<字母>并跳轉到第一個匹配位置之后的一個字母(不常用)

依次進行如下操作練習:

  • 在普通模式下,任意跳轉到一行,使用w跳轉到一個單詞的開頭,然后使用dw刪除這個單詞
  • 在普通模式下,使用e跳轉到一個單詞的結尾,并使用~將游標所在字母變成大寫或小寫

復制粘貼和剪切

復制及粘貼文本

  • 普通模式中使用y復制

    • 普通模式中,yy復制游標所在的整行(3yy表示復制3行)
    • 普通模式中,y^?復制至行首,或y0。不含光標所在處字符。
    • 普通模式中,y$?復制至行尾。含光所在處字符。
    • 普通模式中,yw?復制一個單詞。
    • 普通模式中,y2w?復制兩個單詞。
    • 普通模式中,yG?復制至文本末。
    • 普通模式中,y1G?復制至文本開頭。
  • 普通模式中使用p粘貼

    • 普通模式中,p(小寫)代表粘貼至光標后(下)
    • 普通模式中,P(大寫)代表粘貼至光標前(上)

打開文件進入普通模式練習上述命令,這會兒你就可以隨意yy了,一 一+

$ vim protocols

剪切及粘貼

其實前面講得dd刪除命令就是剪切,你每次dd刪除文檔內容后,便可以使用p來粘貼,也這一點可以讓我們實現一個很爽快的功能——交換上下行:

ddp,就這么簡單,即實現了快速交換光標所在行與它下面的行

?

實驗心得:熟悉掌握相關命令。在普通模式下.(小數點)表示重復上一次的命令操作。例如:普通模式下輸入 x,刪除第一個字符,輸入.(小數點)會再次刪除一個字符,除此之外也可以重復 dd 的刪除操作。nG(n Shift+g) gg G(Shift+g)Ctrl+o,若有bug需要修改,只需要按下 Ctrl+o 就可以回到之前的位置。

字符的替換及撤銷(Undo操作)

替換和撤銷(Undo)命令

替換和Undo命令都是針對普通模式下的操作

命令說明
r+<待替換字母>將游標所在字母替換為指定字母
R連續替換,直到按下Esc
cc替換整行,即刪除游標所在行,并進入插入模式
cw替換一個單詞,即刪除一個單詞,并進入插入模式
C(大寫)替換游標以后至行末
~反轉游標所在字母大小寫
u{n}撤銷一次或n次操作
U(大寫)撤銷當前行的所有修改
Ctrl+rredo,即撤銷undo的操作

打開文件進行編輯:

$ vim practice_2 # 輸入以下文本 www.shiyanlou.com

然后依次進行如下操作

  • 輸入11G,跳轉到11行
  • 輸入fa跳轉到第一個a字符
  • 輸入r,并且輸入b,a字符被b字符替換(實用)
  • 輸入R替換字符,輸入新字符串,輸入完按ESC回到普通模式(實用)
  • 輸入cc替換整行字符,輸入新字符串,輸入完按ESC回到普通模式
  • 輸入cw?替換一個英文字(word),輸入完按ESC回到普通模式(實用)
  • 輸入~,翻轉游標所在字符的大小寫
  • 輸入C?替換至行尾,即游標所在處以后的字都會被替換,輸入完按ESC回到普通模式
  • 輸入u?撤銷上一次的操作

快速縮進

使用命令進行快速調整縮進操作

這一小節學習如何在vim中進行快速縮進,縮進操作均在普通模式下有效

打開文件進行編輯

$ vim protocols
  • 普通模式下輸入15G,跳轉到15行
  • 普通模式下輸入>>?整行將向右縮進(使用,用于格式化代碼超爽)
  • 普通模式下輸入<<?整行向左回退
  • 普通模式下輸入:進入命令行模式下對shiftwidth值進行設置可以控制縮進和回退的字符數

shiftwidth命令

shiftwidth命令是指上一節>>命令產生的縮進(可以簡寫成sw) 普通模式下輸入:進入命令行模式下對shiftwidth值進行設置可以控制縮進和回退的字符數 獲取目前的設定值

:set shiftwidth?

設置縮進為10個字符

:set shiftwidth=10

輸入ESC回到普通模式,再次嘗試>>看縮進量是否變化

調整文本位置

命令行模式下輸入:ce(center)命令使本行內容居中

:ce

命令行模式下輸入:ri(right)命令使本行文本靠右

:ri

命令行模式下輸入:le(left)命令使本行內容靠左

:le

查找

快速查找

普通模式下輸入/然后鍵入需要查找的字符串 按回車后就會進行查找。??與/功能相同,只不過?是向上而/是向下查找。 進入查找之后,輸入n和N可以繼續查找?n表示繼續查找,N反向查找

高級查找

  • 普通模式下輸入\*尋找游標所在處的單詞
  • 普通模式下輸入\#同上,但?\*?是向前(上)找,#則是向后(下)找
  • 普通模式下輸入g\*同\*?,但部分符合該單詞即可
  • 普通模式下輸入g\#同\#?,但部分符合該單詞即可

以上查找n,N?的繼續查找命令依然可以用。

實驗心得:學習執行指定次數相同的命令,替換和 Undo 命令都是針對普通模式下的操作
命令 r+<待替換字母> R cc 說明 將游標所在字母替換為指定字母 連續替換,直到按下 Esc 替換整行,即刪除游標所在行,并進入插入模式。

多文件編輯

使用vim編輯多個文件

編輯多個文件有兩種形式,一種是在進入vim前使用的參數就是多個文件。另一種就是進入vim后再編輯其他的文件。 同時創建兩個新文件并編輯

$ vim 1.txt 2.txt

默認進入1.txt文件的編輯界面

  • 命令行模式下輸入:n編輯2.txt文件,可以加!即:n!強制切換,之前一個文件的輸入沒有保存,僅僅切換到另一個文件
  • 命令行模式下輸入:N編輯1.txt文件,可以加!即:N!強制切換,之前文件內的輸入沒有保存,僅僅是切換到另一個文件

進入vim后打開新文件

  • 命令行模式下輸入:e 3.txt?打開新文件3.txt
  • 命令行模式下輸入:e#?回到前一個文件
  • 命令行模式下輸入:ls可以列出以前編輯過的文檔
  • 命令行模式下輸入:b 2.txt(或者編號)可以直接進入文件2.txt編輯
  • 命令行模式下輸入:bd 2.txt(或者編號)可以刪除以前編輯過的列表中的文件項目
  • 命令行模式下輸入:e! 4.txt,新打開文件4.txt,放棄正在編輯的文件
  • 命令行模式下輸入:f?顯示正在編輯的文件名
  • 命令行模式下輸入:f new.txt,改變正在編輯的文件名字為new.txt

恢復文件

如果因為斷電等原因造成文檔沒有保存,可以采用恢復方式,vim -r進入文檔后,輸入:ewcover 1.txt來恢復

$ vim -r 1.txt

可視模式

可視模式命令簡介

  • 在普通模式下輸入v(小寫),進入字符選擇模式,就可以移動光標,光標走過的地方就會選取。再次按下v會后就會取消選取。
  • 在普通模式下輸入Shift+v(小寫),進入行選擇模式,按下V之后就會把整行選取,您可以上下移動光標選更多的行,同樣,再按一次Shift+v就可以取消選取。
  • 在普通模式下輸入?Ctrl+v(小寫),這是區域選擇模式,可以進行矩形區域選擇,再按一次Ctrl+v取消選取。
  • 在普通模式下輸入d刪除選取區域內容
  • 在普通模式下輸入y復制選取區域內容

視窗操作

視窗操作簡介

vim可以在一個界面里打開多個窗口進行編輯,這些編輯窗口稱為vim的視窗。 打開方法有很多種,例如可以使用在命令行模式下輸入:new?打開一個新的vim視窗,并進入視窗編輯一個新文件(普通模式下輸入Ctrl+w也可以,但是Ctrl+w在chrome下會與chrome關閉標簽頁的快捷鍵沖突,所以使用該快捷鍵你可以在IE或其它瀏覽器進行練習),除了:new命令,下述列舉的多種方法也可以在命令模式或普通模式下打開新的視窗:

  • 命令行模式下輸入:sp 1.txt?打開新的橫向視窗來編輯1.txt
  • 命令行模式下輸入:vsp 2.txt?打開新的縱向視窗來編輯1.txt
  • 普通模式下Ctrl-w s?將當前窗口分割成兩個水平的窗口
  • 普通模式下Ctrl-w v?將當前窗口分割成兩個垂直的窗口
  • 普通模式下Ctrl-w q?即 :q 結束分割出來的視窗。如果在新視窗中有輸入需要使用強制符!即:q!
  • 普通模式下Ctrl-w o?打開一個視窗并且隱藏之前的所有視窗
  • 普通模式下Ctrl-w j?移至下面視窗
  • 普通模式下Ctrl-w k?移至上面視窗
  • 普通模式下Ctrl-w h?移至左邊視窗
  • 普通模式下Ctrl-w l?移至右邊視窗
  • 普通模式下Ctrl-w J?將當前視窗移至下面
  • 普通模式下Ctrl-w K?將當前視窗移至上面
  • 普通模式下Ctrl-w H?將當前視窗移至左邊
  • 普通模式下Ctrl-w L?將當前視窗移至右邊
  • 普通模式下Ctrl-w -?減小視窗的高度
  • 普通模式下Ctrl-w +?增加視窗的高度

視窗操作練習

  • 命令行模式下輸入:new?打開一個新的vim視窗
  • 命令行模式下輸入:sp 2.txt?打開新的橫向視窗來編輯2.txt
  • 命令行模式下輸入:vsp 3.txt?打開新的橫向視窗來編輯3.txt
  • 如果使用非chrome瀏覽器可以使用Ctrl+w進行視窗間的跳轉
  • 分別在不同視窗的命令行模式下輸入:q!退出多視窗編輯

文檔加密

創建加密文檔

$ vim -x file1

輸入您的密碼 確認密碼 這樣在下一次打開時,vim就會要求你輸入密碼

在vim執行外部命令

在命令行模式中輸入!可以執行外部的shell命令

  • :!ls?用于顯示當前目錄的內容
  • :!rm FILENAME用于刪除名為 FILENAME 的文件
  • :w FILENAME可將當前 VIM 中正在編輯的文件另存為 FILENAME 文件

幫助系統

vim中的查看幫助

  • 普通模式下按F1打開vim自己預設的幫助文檔
  • 命令行模式下輸入:h shiftwidth?打開名為shiftwidth的幫助文件
  • 命令行模式下輸入:ver?顯示版本及參數

功能設定

vim的功能設定

可以在編輯文件的時候進行功能設定,如命令行模式下輸入:set nu(顯示行數),設定值退出vim后不會保存。要永久保存配置需要修改vim配置文件。 vim的配置文件~/.vimrc,可以打開文件進行修改,不過務必小心不要影響vim正常使用

獲取目前的設定

  • 命令行模式下輸入:set或者:se顯示所有修改過的配置
  • 命令行模式下輸入:set all?顯示所有的設定值
  • 命令行模式下輸入:set option??顯示option的設定值
  • 命令行模式下輸入:set nooption?取消當期設定值

set功能的說明

  • 命令行模式下輸入:set autoindent(ai)?設置自動縮進
  • 命令行模式下輸入:set autowrite(aw)?設置自動存檔,默認未打開
  • 命令行模式下輸入:set background=dark或light,設置背景風格
  • 命令行模式下輸入:set backup(bk)?設置自動備份,默認未打開
  • 命令行模式下輸入: set cindent(cin)?設置C語言風格縮進

3.問題及解答

1.在使用“x”刪除光標所在位置的字符時,錯刪了字符,不會撤回。

使用u鍵可以撤銷。

2. 問題:GDB的n(next)命令讓GDB執行下一行,然后暫停。 s(step)命令的作用與此類似,只是在函數調用時step命令會進入函數,那么實際使用中應該優先選用哪個?為什么?

next是單步跟蹤程序,當遇到函數調用時,也不進入此函數體;而step遇到用戶自定義的函數,將步進到函數中去運行,而 next 則直接調用函數,不會進入到函數體內。

Step命令,如果step命令將要運行的源代碼行上有函數調用,那么step命令將導致GDB進入到被調用函數的內部。

3.有些成對的命令無法清楚記憶,導致浪費大量時間,如f與F,?與/

多次記憶,重復練習

?

轉載于:https://www.cnblogs.com/20135302wei/p/4842480.html

總結

以上是生活随笔為你收集整理的第二周学习过程总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。