【Linux】vim詳解

1.什么是vi/vim?

????????簡單來說,vi是老式的文本編輯器,不過功能已經很齊全了,但是還是有可以進步的地方。vim則可以說是程序開發者的一項很好用的工具,就連 vim的官方網站( http://www.vim.org)自己也說vim是一個程序開發工具而不是文本處理軟件。

????????Vim是從 vi 發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用,和Emacs并列成為類Unix系統用戶最喜歡的文本編輯器。

????????vim的設計理念是命令的組合。用戶學習了各種各樣的文本間移動/跳轉的命令和其他的普通模式的編輯命令,并且能夠靈活組合使用的話,能夠比那些沒有模式的編輯器更加高效的進行文本編輯。同時VIM與很多快捷鍵設置和正則表達式類似,可以輔助記憶。并且vim針對程序員做了優化。

2.為何要學vi/vim?

其實是有原因的,因為:

  • 很多軟件的編輯接口都會主動調用vi(例如crontab、visudo、edquota等命令);
  • 所有的UNIX-like系統都會內置vi文本編輯器,其他的文本編輯器則不一定會存在;
  • vim 具有程序編輯的能力,可以主動地以字體顏色辨別語法的正確性,方便程序設計;
  • 因為程序簡單,編輯速度相當快速;

其實重點是上述的第二點,因為有太多Linux上面的命令都默認使用vi作為數據編輯的接口,所以你一定要學會Vi,否則很多命令你根本就無法操作。

3.vim的使用

由于啊這個vi和vim的用法基本一樣,我們就講一樣就行了

基本上vim共分為3種模式,分別是一般命令模式、編輯模式與命令行模式。

這3種模式的作用分別是:

  • 一般命令模式(command mode)

以vi打開一個文件就直接進入一般命令模式了(這是默認的模式,也簡稱為一般模式)。

????????在這個模式中,你可以使用【上下左右】按鍵來移動光標,你可以使用【刪除字符】或【刪除整行】來處理文件內容,也可以使用【復制、粘貼】來處理你的文件內容。

  • 編輯模式/插入模式(insert mode)

在一般命令模式中可以進行刪除、復制、粘貼等的操作,但是卻無法編輯文件的內容。要等到你按下【i、I(大寫i)、o、O(大寫o)、a、A、R】等任何一個字母之后才會進入編輯模式。

????????注意了,通常在Linux中,按下【i、I(大寫i)、o、O(大寫o)、a、A】時,在界面的左下方會出現【INSERT】,按下【R】時會出現【REPLACE】的字樣,此時才可以進行編輯,

而如果要回到一般命令模式時,則必須要按下【Esc】這個按鍵即可退出編輯模式。

  • 命令行模式/底行模式(command-line mode)

在一般模式當中,輸入【:? /? ?】三個中的任何一個按鈕,就可以將光標移動到最下面那一行。

????????在這個模式當中,可以提供你【查找數據】的操作,而讀取、保存、批量替換字符、退出vi、顯示行號等的操作則是在此模式中完成。

簡單地說,我們可以將這3個模式想成下面的圖例來表示:


注意到上面的圖例,你會發現一般命令模式可與編輯模式及命令行模式切換但編輯模式與命令行模式之間不可互相切換,這非常重要。

閑話不多說,我們下面以一個簡單的例子來進行說明吧!

3.1.簡易執行范例

如果你想要使用vim來建立一個名為welcome.txt的文件時,你可以這樣做:

  • 1.使用【vim filename】進入一般命令模式



直接輸入【vim文件名】就能夠進入vi的一般命令模式。另外,請注意,記得vim后面一定要加文件名,不管該文件名存在與否。沒有的話vim會自己創建一個新文件

進去之后底行就會出現下面這些字樣

整個界面主要分為兩部分,上半部分與最下面一行兩者可以視為獨立的。上半部分顯示的是文件的實際內容,最下面一行則是狀態顯示行(圖所示的[New File]信息),或是命令執行行。

我們使用vim打開一個新文件

如果使用vim打開的文件是已經存在的文件,則可能會出現如下的信息:

如圖所示,

  1. 底行的那個【"/etc/man_db.conf"[readonly] 131L,5165c】代表的是現在打開的文件名為/etc/man_db.conf,由于打開者的身份緣故,目前文件為只讀狀態,且文件內有131行以及具有5165個字符的意思。
  2. 右邊那個1,1的意思是光標目前處于第一行的第一個字符
  3. Top代表目前這個頁面是在整個文件的最頂端

那一行的內容并不是在文件內,而是 vim 顯示一些信息的地方,此時是在一般命令模式的環境下,接下來開始來輸入吧!

  • ?2.按下i進入編輯模式,開始編輯文字

在一般命令模式之中,只要按下【i、o、a】等字符就可以進入編輯模式了,在編輯模式當中,你可以發現在左下角狀態欄中會出現--INSERT--的字樣,那就是可以輸入任意字符的提示。

這個時候,鍵盤上除了[Esc]這個按鍵之外,其他的按鍵都可以視作為一般的輸入按鈕,所以你可以進行任何的編輯。

當然,除了按【i、o、a】等字符之外,我們還可以按【R】,只不過R進入的是替換模式,意思就是只能替換

  • 3.按下[Esc]鍵回到一般命令模式

好了,假設我已經按照上面的樣式給它編輯完畢了,那么應該要如何退出呢?是的,沒錯,就是給它按下[Esc]這個鍵即可,馬上你就會發現界面左下角的-INSERT-不見了。

  • 4.進入命令行模式,文件保存并退出vi環境

OK,我們要保存了,保存(write)并退出(quit)的命令很簡單,輸入【:wq】即可保存退出。(注意了,按下:該光標就會移動到最下面一行去)

這時你在提示字符后面輸入【Is-l】即可看到我們剛剛建立的test2文件,整個圖有點像下面這樣:


如此一來,你的文件 test2 就已經建立。

????????需要注意的是,如果你的文件權限不對,例如為-r--r-—r--時,那么可能會無法寫入,此時可以使用【強制寫入】的方式嗎?

可以,使用【:wq!】多加一個感嘆號即可。不過,需要特別注意,那個是在你的權限可以改變的情況下才能成立的。

3.2按鍵說明

除了上面簡易示范的i、[Esc]、:wq 之外,其實vim還有非常多的按鍵可以使用。

在介紹之前還是要再次強調,vi的三種模式只有一般命令模式可以與編輯、命令行模式切換,編輯模式與命令行模式之間并不能切換。

下面就來談談vi軟件中會用到的按鍵功能吧!

第一部分:一般命令模式可用的功能按鍵說明,光標移動、復制粘貼、查找替換等

移動光標的方法
h? 或向左箭頭鍵光標向左移動一個字符
j? ?或向下箭頭鍵光標向下移動一個字符
k? ?或向上箭頭鍵光標向上移動一個字符
i? ?或向右箭頭鍵光標向右移動一個字符
[Ctrl]+[f]屏幕【向下】移動一頁,相當于[PageDown]按鍵(常用)
[Ctrl]+[b]屏幕【向上】移動一頁,相當于[PageUp]按鍵(常用)
[Ctrl]+[d]屏幕【向下】移動半頁
[Ctrl] + [u]屏幕【向上】移動半頁
+光標移動到非空格符的下一行
-光標移動到非空格符的上一行
n<space>那個n表示【數字】,按下數字n后再按空格鍵,光標會向右移動這一行的n個字符,例如20<space>則光標會向后面移動20個字符距離
0或功能鍵[Home]

這是數字【0】:移動到這一行的最前面字符處(常用)

$或功能鍵[End]移動到這一行的最后面字符(常用)
H光標移動到這個屏幕的最上方那一行的第一個字符
M光標移動到這個屏幕的中央那一行的第一個字符
L光標移動到這個屏幕的最下方那一行的第一個字符
G移動到這個文件的最后一行(常用)
nGn為數字,移動到這個文件的第n行,例如20G則會移動到這個文件的第20行(可配合:set nu)
gg移動到這個文件的第一行,相當于1G(常用)
n<Enter>n為數字,光標向下移動n行(常用)

注意:如果你將右手放在鍵盤上的話,你會發現hjki是排行在一起的,因此可以使用這四個按鍵來移動光標。

????????如果想要進行多次移動的話,例如向下移動30行,可以使用“30j”或“30↓”的組合按鍵,亦即加上想要進行的次數(數字)后,按下操作即可

查找和替換
/word

向光標之下尋找一個名稱為word的字符串。

例如要在文件內查找vbird 這個字符串,就輸入/vbird即可(常用)

?word向光標之上尋找一個字符串名稱為word的字符串
n

這個n是英文按鍵,代表【重復前一個查找的操作】。

舉例來說,

如果剛剛我們執行/bird去向下查找vbird這個字符串,則按下n后,會向下繼續查找下一個名稱為vbird的字符串.

如果是執行?vbird的話,那么按下n則會向上繼續查找名稱為vbird的字符串

N這個N是英文按鍵,與n剛好相反,為【反向】進行前一個查找操作,例如/vbird后,按下N則表示【向上】查找vbird
:n1,n2s/word1/word2/g

n1與n2為數字,在第n1與n2行之間尋找word1這個字符串,并將該字符串替換為word2,

舉例來說,在100到200行之間查找 vbird 并替換為 VBIRD則:“:100,200s/vbird/VBIRD/g”(常用)

:1,$s/word1/word2/g從第一行到最后一行尋找word1字符串,并將該字符串替換為word2(常用)
:1,$s/word1/word2/gc從第一行到最后一行尋找word1字符串,并將該字符串替換為word2,且在替換前顯示提示字符給用戶確認(confirm)是否需要替換(常用)

刪除,復制,粘貼
x和X在一行當中,x為向后刪除一個字符(相當于[del]按鍵),X為向前刪除一個字符(相當于[Backspace]即退格鍵)(常用)
nx

n為數字,連續向后刪除n個字符。

舉例來說,我要連續刪除 10個字符,【10x】

dd刪除(剪切)光標所在的那一整行(常用)
nddn為數字,刪除(剪切)光標所在的向下n行,例如20dd則是刪除(剪切)20行(常用)
d1G刪除(剪切)光標所在處到第一行的所有數據
dG刪除(剪切)光標所在處到最后一行的所有數據
d$刪除(剪切)光標所在處,到該行的最后一個字符
d0那個是數字的0,刪除(剪切)光標所在處,到該行的最前面一個字符
yy復制光標所在的那一行(常用)
nyyn為數字,復制光標所在的向下n行,例如20yy則是復制20行(常用)
y1G復制光標所在行到第一行的所有數據
yG復制光標所在行到最后一行的所有數據
y0復制光標所在的那個字符到該行行首的所有數據
y$復制光標所在的那個字符到該行行尾的所有數據
p和P

p為將已復制的數據在光標下一行粘貼,P則為貼在光標上一行。

舉例來說,我目前光標在第20行,且已經復制了10行數據,則按下p后,那10行數據會貼在原本的20行之后,即由21行開始貼,但如果是按下P呢?那么原本的第20行會被推到變成30行(常用)

J將光標所在行與下一行的數據結合成同一行
c重復刪除多個數據,例如向下刪除10行,[10cj]
u恢復前一個操作(常用)
[Ctrl]+r重做上一個操作(常用)
.

不要懷疑,這就是小數點,意思是重復前一個操作的意思。

如果你想要重復刪除、重復粘貼等操作,按下小數點【.】就好(常用)

這個u與[Ctrl]+r是很常用的命令。一個是恢復,另一個則是重做一次,利用這兩個功能按鍵,你的編輯,嘿嘿,很快樂的啊。

第二部分:一般命令模式切換到編輯模式的可用的按鍵說明

進入插入或替換模式的編輯模式
i和I

進入插入模式(Insert mode):

i為【從目前光標所在處插入】,|為【在目前所在行的第一個非空格符處開始插入】(常用)

a和A進入插入模式(Insert mode ):
a為【從目前光標所在的下一個字符處開始插入】,A為【從光標所在行的最后一個字符處開始插入】(常用)
o和O進入插入模式(Insert mode):
這是英文字母o的大小寫,o為【在目前光標所在的下一行處插入新的一行】;O為在目前光標所在處的上一行插入新的一行(常用)
r和R進入替換模式(Replace mode):
r只會替換光標所在的那一個字符一次;R會一直替換光標所在的文字,直到按下Esc為
止(常用)
Esc退出編輯模式,回到一般命令模式中(常用)

上面這些按鍵中,在vim界面的左下角處會出現【--INSERT-】或【--REPLACE--】的字樣。由名稱就知道該操作了吧!

特別注意的是,我們上面也提過,你想要在文件里面輸入字符時,一定要在左下角處看到 INSERT 或 REPLACE才能輸入。

第三部分:一般命令模式切換到命令行模式的可用按鍵說明

命令行模式的保存,退出等命令
:w將編輯的數據寫入硬盤文件中(常用)
:w!若文件屬性為【只讀】時,強制寫入該文件。不過,到底能不能寫入,還是跟你對該文件的文件權限有關
:q退出vim(常用)
:q!

若曾修改過文件,又不想保存,使用!為強制退出不保存

注意一下,那個感嘆號(!)在vim當中,常常具有【強制】的意思。

:wq保存后退出,若為:wq!則為強制保存后退出(常用)
ZZ這是大寫的Z,若文件沒有修改,則不保存退出,若文件已經被修改過,則保存后退出
:w? [filename]將編輯的數據保存成另一個文件(類似另存新文件)
:r [filename]在編輯的數據中,讀入另一個文件的數據,亦即將【filename】這個文件內容加到光標所在行后面
:n1,n2 w [filename]將n1到n2的內容保存為filename 這個文件
:! command暫時退出vim到命令行模式下執行command的顯示結果。例如【:!ls /home 】即可在vi當中查看/home下面以Is輸出的文件信息
set? nu顯示行號,設置之后,會在每一行的前綴顯示該行的行號
set nonu與set nu相反,為取消行號

特別注意,在Vim中,【數字】是很有意義的,數字通常代表重復做幾次的意思,也有可能是代表去到第幾個什么什么的意思

舉例來說,要刪除(剪切)50行,則是用【50dd 】。數字加在操作之前,那我要向下移動20行呢?那就是【20j】或是【20↓】即可。

????????OK,會這些命令就已經很厲害了,因為常用到的命令也只有不到一半。通常vim的命令除了上面鳥哥注明“常用”的幾個外,其他是不用背的,你可以做一張簡單的命令表在你的屏幕壁紙上,一有疑問可以馬上查詢。


3.3. vim的緩存、恢復與打開時的警告信息

????????目前主要的文本編輯軟件都會有恢復的功能,即當你的系統因為某些原因而導致類似宕機的情況時,還可以通過某些特別的機制來讓你將之前未保存的數據【救】回來,這就是鳥哥這里所謂的恢復功能。

那么vim有沒有恢復功能?有的,vim就是通過緩存來恢復。

????????當我們在使用vim 編輯時,vim會在與被編輯的文件的目錄下,再建立一個名為filename.swp的文件。

????????比如說編輯/tmp/vitest/man_db.conf這個文件時,vim會主動的建立/tmp/vitest/.man_db.conf.swp的緩存,你對man_db.conf 做的操作就會被記錄到這個.man_db.conf.swp當中。如果你的系統因為某些原因掉線了,導致你編輯的文件還沒有保存,這個時候.man_db.conf.swp就能夠發揮恢復功能了。

我們來測試一下吧!下面的練習有些部分的命令

我們尚未談到,沒關系,你先照著做,后續再回來了解。



我們使用vim打開vitest,此時會進入到vim的界面,在vim的一般命令模式下按下【[ctrl]-z】的組合鍵就會退出來,就像下面這樣子


????????當我們在vim的一般命令模式下按下[ctl]-z的組合按鍵時,你的vim會被丟到后臺去執行。這部分的功能我們會在進程管理當中談到,你這里先知道一下即可。

回到命令提示字符后,接下來我們來模擬將 vim的工作不正常的中斷吧!


我們看最后一行那個.vitest.swp

我們來模擬vim停止工作


這個 kil 可以模擬將系統的vim工作刪除的情況,你可以模擬宕機。

由于vim的工作被不正常地中斷,導致緩存無法借由正常流程來結束,所以緩存就不會消失,而繼續保留下來,此時如果你繼續編輯那個vitest,會出現什么情況?會出現如下所示的狀態:

????????由于緩存存在的關系,因此 vim會主動的判斷你的這個文件可能有些問題,在上面的圖例中vim提示兩點主要的問題與解決方案,分別是這樣的:

  • 問題一:可能有其他人或程序同時在編輯這個文件:

由于 Linux是多人多任務的環境,因此很可能有很多人同時在編輯同一個文件。如果在多人共同編輯的情況下,萬一大家同時保存,那么這個文件的內容將會變的亂七八糟。為了避免這個問題,因此vim會出現這個警告窗口,解決的方法則是:

  1. 找到另外那個程序或人員,請它將該vim的工作結束,然后你再繼續處理。
  2. 如果你只是要看該文件的內容并不會有任何修改編輯的操作,那么可以選擇開啟成為只讀(O)文件,即上述界面反白部分輸入英文【o】即可,其實就是[O]pen Read-Only的選項。
  • 問題二:在前一個 vim 的環境中,可能因為某些不知名原因導致vim 中斷(crashed):

這就是常見的不正常結束vim產生的后果,解決方案依據不同的情況而不同,常見的處理方法為:

  • 如果你之前的vim 處理操作尚未保存,此時你應該要按下【R】,亦即使用(R)ecover 的選項,此時vim會加載.vitest.swp的內容,讓你自己來決定要不要保存,這樣就能夠救回來你之前未保存的信息。不過這個.vitest.swp 并不會在你結束vim 后自動刪除,所以你退出vim后還得要自行刪除,.vitest.swp才能避免每次打開這個文件都會出現這樣的警告。
  • 如果你確定這個緩存是沒有用的,那么你可以直接按下【D】刪除掉這個緩存,即(D)elete it 這個選項即可。此時vim會加載.vitest.swp,并且將舊的.vitest.swp刪除后,建立這次會使用的新的.vitest.swp。

至于這個發現緩存警告信息的界面中,有出現六個可用按鍵,各按鍵的說明如下:

  1. [O]pen Read-Only:打開此文件成為只讀文件,可以用在你只是想要查看該文件內容并不想要進行編輯操作時。一般來說,在上課時,如果你是登錄到同學的計算機去看它的配置文件,結果發現其實同學它自己也在編輯時,可以使用這個模式;
  2. (E)dit anyway:還是用正常的方式打開你要編輯的那個文件,并不會加載緩存的內容,不過很容易出現兩個用戶互相改變對方的文件等問題。
  3. (R)ecover:就是加載緩存的內容,用在你要救回之前未保存的工作,不過當你救回來并且保存退出vim后,還是要手動自行刪除那個緩存。
  4. (D)elete it:你確定那個緩存是無用的,那么打開文件前會先將這個緩存刪除,這個操作其實是比較常做。因為你可能不確定這個緩存是怎么來的,所以就刪除掉它吧!。
  5. (Q)uit:按下q就退出vim,不會進行任何操作回到命令提示字符。
  6. (A)bort:忽略這個編輯操作,感覺上與quit 非常類似,也會送你回到命令提示字符。

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

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

相關文章

如何計算卷積層輸出圖像的大小以及池化大小輸出

如何計算卷積層輸出圖像的大小&以及池化大小輸出 卷積 在卷積神經網絡&#xff08;CNN&#xff09;中&#xff0c;計算卷積層輸出圖像的大小是一個常見的操作。以下是卷積計算的基本公式和步驟&#xff1a; 卷積層輸出尺寸計算公式&#xff1a; Output_size ? Input_s…

區塊鏈項目全球成功指南:全面覆蓋的媒體宣發策略與實踐

隨著區塊鏈技術的迅速普及和發展&#xff0c;全球范圍內對區塊鏈項目的關注度不斷提升。為了在國際市場上取得成功&#xff0c;區塊鏈項目需要通過有效的媒體宣傳策略來提高知名度&#xff0c;吸引投資&#xff0c;并建立強大的社區支持。本文將詳細介紹區塊鏈項目在海外媒體宣…

為企業提升銷售工作效率的工作手機管理系統

在競爭日益激烈的市場環境中&#xff0c;企業的銷售團隊如同前線戰士&#xff0c;其作戰效率直接關乎企業的生存與發展。然而&#xff0c;傳統銷售管理模式下的信息孤島、溝通不暢、數據混亂等問題&#xff0c;正悄然成為制約銷售效率提升的瓶頸。今天&#xff0c;我們為您揭秘…

在 Windows 平臺搭建 MQTT 服務

引言 MQTT 是一種輕量級、基于發布/訂閱模式的消息傳輸協議&#xff0c;旨在用極小的代碼空間和網絡帶寬為物聯網設備提供簡單、可靠的消息傳遞服務。MQTT 經過多年的發展&#xff0c;如今已被廣泛應用于資源開采、工業制造、移動通信、智能汽車等各行各業&#xff0c;使得 MQ…

匯聚榮做拼多多電商怎么樣?

匯聚榮做拼多多電商怎么樣?在當前電商平臺競爭激烈的背景下&#xff0c;拼多多憑借其獨特的商業模式和市場定位迅速崛起。對于想要加入拼多多的商家而言&#xff0c;了解平臺的特點、優勢及挑戰是至關重要的。本文將深入分析加入拼多多電商的多個方面&#xff0c;幫助讀者全面…

ubuntu計劃任務反彈

目錄 實驗環境 實驗步驟 目標主機構造任務計劃 構造語句 語句解釋 kali開啟監聽 監聽成功 問題 原因 實驗環境 攻擊者 操作系統&#xff1a;kali IP&#xff1a;192.168.244.141 目標主機 操作系統&#xff1a;ubuntu IP&#xff1a;192.168.244.151 實驗步驟 目…

論文學習_An Empirical Study of Deep Learning Models for Vulnerability Detection

1. 引言 研究背景:近年來,深度學習漏洞檢測工具取得了可喜的成果。最先進的模型報告了 0.9 的 F1 分數,并且優于靜態分析器。結果令人興奮,因為深度學習可能會給軟件保障帶來革命性的變化。因此,IBM、谷歌和亞馬遜等行業公司非常感興趣,并投入巨資開發此類工具和數據集。…

(8)揭示Python編程精髓:深潛繼承與多態的奇幻之旅

目錄 1. 命名空間與作用域1.1 命名空間概述1.2 作用域1.2.1 局部作用域1.2.2 全局作用域1.2.3 修改全局變量1.2.4 嵌套作用域 2. 繼承3. 多態&#xff08;Polymorphism&#xff09; 1. 命名空間與作用域 1.1 命名空間概述 命名空間是一個從名字到對象的映射&#xff0c;它在P…

Qt:19.浮動窗口/子窗口(子窗口介紹、代碼方式創建子窗口、設置子窗口標題、為子窗口添加控件、設置子窗口停靠位置)

目錄 1.子窗口介紹&#xff1a; 2.代碼方式創建子窗口&#xff1a; 3.設置子窗口標題&#xff1a; 4.為子窗口添加控件&#xff1a; 5.設置子窗口停靠位置。 1.子窗口介紹&#xff1a; 在 Qt 中&#xff0c;可以創建和管理子窗口&#xff08;子窗口體&#xff09;以實現多窗…

圖片怎么制作成長期可用的活碼?掃碼提供圖片預覽的制作技巧

現在圖片的尺寸和清晰度的質量越來越高&#xff0c;相對應的會占用更多的存儲空間&#xff0c;現在很多人會將圖片存入云端后&#xff0c;通過生成二維碼的方式&#xff0c;掃碼來查看圖片內容。圖片轉換二維碼有利于將圖片分享給其他人查看&#xff0c;還能夠節省更多的空間&a…

SpringBoot自己開發一個starter

提示&#xff1a;本文主要講述如何自行開發一個SpringBoot的starter 文章目錄 目錄 文章目錄 前言 一、Starter是什么 二、創建一個SpringBoot項目 1.創建一個基本的SpringBoot項目 2.選擇要下載的庫 三、設置項目 1.提示 2.配置pom.xml 3.重點代碼 1.創建一個User類…

16.x86游戲實戰-匯編指令push pop pushad popad

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 本次游戲沒法給 內容參考于&#xff1a;微塵網絡安全 工具下載&#xff1a; 鏈接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

【第29章】MyBatis-Plus之分頁插件

文章目錄 前言一、支持的數據庫二、配置方法三、屬性介紹四、自定義 Mapper 方法中使用分頁五、其他注意事項六、Page 類七、實戰1. 配置類2. 分頁類3. 測試 總結 前言 MyBatis-Plus 的分頁插件 PaginationInnerInterceptor 提供了強大的分頁功能&#xff0c;支持多種數據庫&a…

Windows電腦安裝Python結合內網穿透輕松搭建可公網訪問私有網盤

文章目錄 前言1.本地文件服務器搭建1.1.Python的安裝和設置1.2.cpolar的安裝和注冊 2.本地文件服務器的發布2.1.Cpolar云端設置2.2.Cpolar本地設置 3.公網訪問測試4.結語 前言 本文主要介紹如何在Windows系統電腦上使用python這樣的簡單程序語言&#xff0c;在自己的電腦上搭建…

kubernetes授予用戶指定命名空間的使用權限

kubernetes授予用戶指定命名空間的使用權限 問題描述具體實現簽發客戶端證書創建RBAC策略生成kubeconfig文件 問題描述 假如我們部門來了個新同事&#xff0c;他需要使用kubernetes集群&#xff0c;但是因為他剛來&#xff0c;還不熟悉&#xff0c;所以不能直接將kubernetes集…

Spring如何控制Bean加載+執行順序

1. Order 注解和 Ordered 接口 用途&#xff1a;控制組件執行順序或排序&#xff0c;但不控制Bean初始化順序。定義執行順序&#xff1a;通過整數值指定組件優先級&#xff0c;數值越小優先級越高。集合排序&#xff1a;影響自動裝配到集合中的組件排列順序。使用場景&#xf…

77.MySQL的分頁查詢

一、LIMIT關鍵字 LIMIT關鍵字用于限制返回結果集中的行數。其基本語法如下&#xff1a; SELECT * FROM 表名 LIMIT 行數; 例如&#xff0c;要從名為mark_info的表中選擇最新創建的10個工單的信息&#xff0c;可以執行以下查詢&#xff1a; SELECT * FROM mark_info ORDER B…

電力需求預測挑戰賽筆記 Taks1 跑通baseline

#AI夏令營 #Datawhale #夏令營 賽題 一句話介紹賽題任務可以這樣理解賽題&#xff1a; 【訓練時序預測模型助力電力需求預測】 電力需求的準確預測對于電網的穩定運行、能源的有效管理以及可再生能源的整合至關重要。 賽題任務 給定多個房屋對應電力消耗歷史 N 天的相關序列數…

拓撲排序(算法篇)

算法之拓撲排序 拓撲排序 概念&#xff1a; 拓撲排序是對有向無圈圖的頂點的一種排序。排序不必是唯一的&#xff0c;任何合理的排序都是可以的。具體做法是&#xff1a;先找出任意一個沒有入邊的頂點v(就是沒有其他頂點指向的頂點)&#xff0c;將頂點v放入隊列&#xff0c;…

element-plus el-table點擊當前行和劃過展示鼠標

在 Element Plus 的 el-table 組件中&#xff0c;設置滑過行時鼠標的樣式可以通過 CSS 來實現。你可以使用 CSS 的 cursor 屬性來定義鼠標懸停時的樣式。以下是一個簡單的例子&#xff1a; 首先&#xff0c;在你的 Vue 組件的 .el-table .el-table__row:hover {cursor: poin…