【Linux】【Vim】vim編輯器的用法

一、vim簡介

Vim是一款功能強大且高度可定制的文本編輯器,廣泛應用于LinuxUnix系統中。
它不僅繼承了vi編輯器的所有特性,還增加了許多新的功能,如語法高亮、代碼折疊、多級撤銷等。

Vim有三種主要的工作模式:

  • 命令模式Command Mode
  • 插入模式Insert Mode
  • 底線命令模式Command-Line Mode

每種模式下可以執行不同的操作。

二、啟動與退出

  • 啟動
    啟動Vim可以通過在終端輸入vim或vim 文件名來實現。
    如果文件不存在,Vim將創建一個新文件。

  • 退出
    退出Vim時,根據是否需要保存更改,可以選擇以下命令之一:

    • 正常退出
      • :q:當文件沒有被修改時,可以直接使用此命令退出 Vim。如果文件已經被修改但未保存,則會提示錯誤信息,不允許直接退出。
      • :x:wq:這兩個命令是等價的,表示保存當前文件并退出。其中 :w 表示寫入(保存),而 :q表示退出。
      • ZZ:這是另一種保存并退出的方式,相當于 :wq,但是不需要輸入冒號進入命令模式,而是直接按兩次大寫的 Z 鍵即可。
    • 不保存退出
      • ::q! :強制退出而不保存任何更改。這對于那些想要放棄所有未保存更改的情況非常有用。
      • :ZQ:類似于 :q! `的效果,即不保存變更強行退出。注意,這不是標準的 Vim 命令,但在某些版本中可用。
    • 強制操作
      • ::w!:當權限不足或其他原因導致無法正常保存時,可以嘗試使用 :w! 來強制保存文件。
      • ::wq! :x!:在遇到類似問題時,也可以通過這些命令來強制保存并退出19。
      • ::qa! :當在一個多窗口環境中工作時,可以使用該命令關閉所有窗口并且不保存任何更改地退出 Vim。
    • 其他特殊情況
      • ::e! :如果你打開了一個文件并進行了修改,但又想回到上一次保存的狀態繼續編輯,可以使用此命令重新加載未修改過的文件內容。
      • ::cq:cquit:這將使 Vim 在退出時返回非零狀態碼,通常用于腳本編程中,以指示程序遇到了錯誤。

三、模式切換

  • 命令模式:這是啟動Vim后的默認模式,在這里可以輸入各種命令來導航、編輯文本。

  • 插入模式:通過按i鍵進入此模式,在這里可以輸入文本內容。要返回命令模式,只需按下Esc鍵。

  • 底線命令模式:在命令模式下按:進入,用于輸入更復雜的命令,如保存文件、退出等。

四、基本命令

4.1 光標移動

  • 使用 方向鍵 或者k(上)、j(下)、h(左)、l(右)來逐字符移動光標。

  • 0Home:移動到當前行的第一個非空白字符。

  • $End:移動到當前行的最后一個字符。

  • gg:移動到文件的第一行;

  • G:移動到最后一行;

  • nG:移動到第n行。

  • [Ctrl] + f:向下翻頁;[Ctrl] + b:向上翻頁。

4.1 編輯文本

  • 插入文本iIaAoO分別表示在不同位置開始插入文本。

  • 刪除文本

    • 刪除單個字符
      • x:刪除光標所在字符
      • X:刪除光標前一個字符
    • 刪除單詞或部分行
      • dw:刪除從光標位置到下一個單詞開頭之間的所有內容。注意:不一定是刪除整個單詞
      • db:刪除從光標位置到上一個單詞開頭之間的所有內容。
      • de:刪除從光標位置到當前單詞結尾的所有內容。
      • dE:刪除從光標位置到當前大寫字母開頭單詞結尾的所有內容。
      • d$:刪除從光標位置到當前行末尾的所有內容。
    • 刪除整行或多行
      • dd:刪除當前行。
      • ndd:刪除從當前行開始的n行(例如,5dd會刪除接下來的五行)。
      • dG:刪除從當前行到文件最后一行的所有內容。
      • d1G:刪除從當前行到文件第一行的所有內容。
      • :start,end d:刪除指定范圍內的行,其中start和end是起始和結束行號。例如,:3,7d將刪除第3至第7行
    • 刪除所有內容
      • ggdG:這是另一種快速刪除整個文件內容的方法,首先將光標移動到文件頂部(gg),然后刪除直到文件末尾(dG)。
      • :%d:在底行模式下輸入此命令也會刪除文件中的所有行。
      • :%s/./ /g:%s/^.*$//g:使用替換命令將每一行的內容替換成空字符串
    • 刪除特定模式匹配的行
      • :g/pattern/d:刪除所有包含pattern的行。這里pattern可以是一個正則表達式。
      • :g!/pattern/d:刪除所有不包含pattern的行。
    • 其他刪除操作
      • J:合并當前行與下一行,即刪除兩行間的換行符。
      • D:刪除光標后到行尾的所有內容,等同于d$
      • C:刪除光標后的所有內容并進入插入模式,類似于c$
    • 使用可視模式進行刪除
      • v:進入字符級別可視化模式,選擇文本后按d刪除。
      • V:進入行級別可視化模式,選擇多行后按d刪除。
      • Ctrl-v:進入塊級別可視化模式,選擇矩形區域后按d刪除。
    • 特殊情況下的刪除
      • :g/^$/d:刪除所有空行。
      • :g/^#.*$/d:刪除以#開頭的所有行(通常為注釋行)。
  • 復制粘貼

    • yy:復制一行;
    • p:粘貼到光標之后;
    • P:粘貼到光標之前。

4.1 搜索替換

  • 尋找字符串

    • /pattern:向光標之下尋找字符串pattern
    • ?pattern:向光標之上查找。
  • 重復搜索

    • n:重復前一次搜索;
    • N:反向重復。
  • 替換命令

    • 格式為: s/old/new/[g],其中g表示全局替換整個文件中的所有匹配項。

五、高級功能

  • 分屏操作
    • :split :水平分割窗口;
    • :vsplit: 垂直分割
    • Ctrl+w :加 方向鍵 在多個窗口間切換。
  • 宏錄制
    • qa:開始錄制宏至寄存器a
    • 再次按q:結束錄制
    • @a:播放宏
  • 配置文件
    • .vimrc位于用戶目錄下,用于自定義Vim的行為設置及加載插件。

六、實用技巧

  • 快速定位
    • gg:跳轉到文件開頭
    • G:跳轉到結尾
    • :n:跳轉到第n行
  • 代碼折疊
    • za:折疊/展開當前塊
    • zc:折疊
    • zo:展開
    • zR:展開所有
    • zM:折疊所有
  • 快速注釋代碼
    安裝NERD Commenter插件后,
    • 使用,+ci注釋選中區域;
    • ,+cu取消注釋

七、配置與定制(自定義配置)

每個用戶都可以根據自己的需求創建或修改.vimrc文件(位于用戶的主目錄下),以實現個性化的設置。
例如,可以通過添加以下命令來自定義行號顯示、啟用語法高亮、設置縮進等:

  • set nu:顯示行號
  • set cursorline:突出顯示當前行
  • syntax on:開啟語法高亮
  • set tabstop=4 shiftwidth=4 expandtab:將Tab鍵替換為四個空格

此外,還可以安裝各種插件來擴展Vim的功能,如自動補全工具YouCompleteMe、項目管理器NERDTree等。

八、插件管理

隨著社區的發展,出現了許多優秀的Vim插件,它們可以幫助開發者更高效地完成任務。
為了方便管理和加載這些插件,推薦使用Vundle或者Plug等插件管理器。
安裝后只需在.vimrc中列出所需的插件列表,并運行相應的安裝命令即可快速安裝并啟用所需插件。

九、可視化模式(Visual Mode)

可視化模式是Vim的一個重要特性,它允許用戶通過鍵盤選擇文本,并對選定的文本塊進行各種操作,如復制、剪切、刪除、格式化等。
這一模式極大地提高了編輯效率,特別是對于需要頻繁處理文本塊的用戶來說。

  • 可視化模式概述

    • Vim中,可以通過如下命令進入可視化模式

      • 按下v鍵:進入字符可視化模式(Characterwise visual mode),
      • 按下V鍵:進入行可視化模式(Linewise visual mode),
      • 按住Ctrl鍵并按下v鍵:進入塊可視化模式(Blockwise visual mode)。
    • 進入了可視化模式,屏幕底部會顯示相應的標識符以指示當前所處的模式:

      • --VISUAL--表示字符可視化模式
      • --VISUAL LINE--表示行可視化模式
      • --VISUAL BLOCK--則表示塊可視化模式
  • 字符可視化模式
    字符可視化模式允許用戶逐個字符地選擇文本
    這對于選擇短語、單詞或句子非常有用。
    用戶可以使用 方向鍵 或 Vim中的導航命令(如w、b、e等)來擴展選擇范圍。
    一旦選擇了所需的文本,就可以應用各種編輯命令

    • d:用于刪除選中的文本
    • y:用于復制選中的文本到寄存器中
    • c:用于更改選中的文本
  • 行可視化模式
    行可視化模式是以行為單位選擇文本的方式。
    當用戶想要移動、復制或刪除整個行時,這種模式特別有用。
    進入行可視化模式后,用戶可以通過上下箭頭或其他導航命令來選擇多行文本。

    • d命令:刪除選中的行,
    • y命令:復制選中的行,
    • >< 命令:來增加或減少選中行的縮進
  • 塊可視化模式
    塊可視化模式允許用戶選擇矩形區域內的文本。
    這對于表格數據的操作非常有用,比如同時編輯多列內容。
    在塊可視化模式下,用戶可以選擇一個矩形區域,然后執行諸如插入文本、刪除文本或改變大小寫等操作。
    此外,還可以利用I命令在每行的相同位置插入文本,這對于批量編輯具有固定格式的數據非常方便。

  • 其他有用的命令
    除了基本的選擇和編輯命令外,可視化模式還支持更多高級操作。

    • :命令:可以在選中的文本范圍內執行Ex命令,如排序、搜索替換等;
    • J命令:可以將選中的行合并成一行;
    • g?命令:可以對選中的文本應用ROT13編碼/解碼。
    • gv命令:如果用戶希望重新選擇上一次高亮的文本區域,可以使用gv命令。
  • 總之
    Vim的可視化模式為用戶提供了一種直觀且高效的方式來處理文本。
    通過熟練掌握這些模式及其相關命令,用戶可以在不需要離開鍵盤的情況下完成復雜的文本編輯任務,從而提高工作效率。

十一、多文件處理

Vim支持同時打開多個文件,并可以在不同文件之間輕松切換。
使用:split:vsplit命令創建新的水平或垂直分割窗口來顯示其他文件。
此外,還可以利用標簽頁(Tab Pages)管理多個文件,例如:tabnew filename用于在新標簽中打開文件。
為了方便導航,可以通過:tabs查看所有打開的標簽,或者使用gt/gT向前/向后切換標簽。

在Linux環境下,Vim編輯器不僅支持對單個文件的編輯,還提供了強大的多文件處理功能。
通過使用緩沖區(buffer)、窗口(window)和標簽頁(tab),用戶可以在同一個Vim會話中同時打開并編輯多個文件,極大地提高了工作效率。
以下是關于如何在Vim中進行多文件處理的具體介紹。

  • 啟動時打開多個文件
    當您想要一次性打開多個文件時,可以直接在命令行中啟動Vim,并將所有要編輯的文件名作為參數傳遞給它。

    例如:

    • Vim啟動并將這些文件加載到不同的緩沖區中,但默認情況下只會顯示第一個文件的內容。
      vim file1 file2 file3
    • 如果您希望以分屏的方式同時查看多個文件,則可以使用-o或-O選項來分別實現水平或垂直分割窗口的效果:
      vim -o file1 file2 # 水平分屏
      vim -O file1 file2 # 垂直分屏
    • 此外,還可以直接在命令行上使用vimdiff命令來比較兩個文件之間的差異,這對于代碼審查或文檔對比非常有用。
  • 在已啟動的Vim中打開新文件
    如果已經在Vim內部工作并且需要打開新的文件,可以通過以下幾種方式之一完成:

    • :e filename命令:替換當前緩沖區中的內容為指定的新文件。
    • :sp filename:vsp filename命令:創建一個新的水平或垂直分割窗口,并在其中加載指定的文件。
    • :tabedit filename命令:在一個新的標簽頁中打開文件。
  • 文件間的切換與管理
    一旦有多個文件被加載到了Vim中,可以利用一系列命令來進行快速切換和管理:

    • :ls:列出所有已經加載到內存中的緩沖區及其狀態。
    • :b<number>:buffer <number>:根據編號選擇特定的緩沖區進行編輯。
    • Ctrl+^:e#:在最近訪問過的兩個文件之間切換。
    • :bn:bp:向前或向后切換到下一個/前一個文件。
    • Ctrl+w w:循環切換各個窗口。
    • gt:切換到下一個標簽頁;
    • gT: 則用于返回至上一個標簽頁。
  • 緩沖區、窗口與標簽頁的關系
    理解緩沖區、窗口以及標簽頁之間的關系對于有效利用Vim的多文件處理能力至關重要。簡單來說:

    • 緩沖區是指Vim為每個打開的文件分配的一塊內存空間,即使該文件沒有顯示在任何窗口中也存在相應的緩沖區。
    • 窗口是屏幕上用來展示某個特定緩沖區內容的一個區域,同一時間可以有多個窗口顯示不同或者相同的緩沖區。
    • 標簽頁則是包含一組窗口的集合,允許用戶在同一Vim實例內組織多個獨立的工作環境。

十二、集成開發環境(IDE)特性

雖然Vim本身不是IDE,但它可以通過各種方式模擬IDE的行為。例如,結合ctags生成索引文件,以便快速查找函數定義;
或者使用cscope進行更復雜的源碼分析。
另外,還有專門為特定編程語言設計的插件,如Python-mode、YouCompleteMe 等,它們為開發者提供了諸如智能感知、調試支持等功能。

十三、自定義與自動化

每個用戶的編輯習慣都不盡相同,因此Vim允許高度個性化配置。
除了前面提到的.vimrc文件外,還可以設置快捷鍵映射、顏色主題、狀態欄信息等內容。更重要的是,Vim腳本語言使得編寫復雜任務變得可能,比如批量重命名變量、格式化代碼等。對于經常重復的任務,可以編寫宏錄制下來,以便日后一鍵完成。

十四、搜索歷史與命令行補全

14.1 搜索歷史

Linux的Vim編輯器中,搜索歷史命令是一個非常有用的功能,它允許用戶回顧并重新使用以前執行過的搜索模式。
Vim提供了多種方式來訪問和管理這些歷史記錄。
以下是關于如何查看、管理和使用Vim中的所有類型搜索歷史命令的詳細說明。

  • 查看所有類型的搜索歷史

    • :history all: 在命令行模式下輸入此命令會列出所有的歷史條目,包括命令行歷史、搜索歷史等。
    • :history + 類型: 在命令行模式下輸入此命令只查看特定類型的歷史記錄
      • :history c: 只查看命令行歷史記錄
      • :history s: 只查看搜索歷史記錄
  • 瀏覽和重復使用搜索歷史

    • 當您想要瀏覽之前執行過的搜索時,可以在普通模式下按q/(向前搜索)或q?(向后搜索)來打開一個包含所有搜索歷史的小窗口。
      選擇一項歷史記錄后按下回車鍵即可再次執行該搜索。
    • 此外,在命令行模式中,您可以直接輸入/?,然后通過上下箭頭鍵來瀏覽搜索歷史記錄,并可以選擇其中一個來執行。
    • 如果您只是想快速地重復上一次的搜索,可以在普通模式下輸入n(查找下一個匹配項)或 N(反向查找下一個匹配項)。
      如果需要從命令行模式開始一個新的搜索但又不想丟失當前光標位置,可以先輸入/?再按回車鍵,然后使用上下箭頭鍵選擇之前的搜索模式。
  • 使用快捷鍵訪問歷史
    對于更高效的搜索歷史訪問,可以利用一些快捷鍵組合。

    • 例如,在命令行模式下,您可以按Ctrl-P(向上導航)或Ctrl-N(向下導航)來滾動瀏覽歷史命令列表。
      這種方法特別適合于那些經常重復相同或相似命令的場景。

    • 另外,如果您正在尋找特定的命令或搜索模式,可以在命令行模式下輸入部分字符串,然后按Ctrl-R以啟動增量式搜索,這將幫助您更快地定位到所需的命令或搜索模式。

  • 配置歷史選項

    • 為了更好地控制歷史記錄的行為,可以通過設置history選項來調整保存的歷史條目數量。
      默認情況下,Vim會記住最近50個命令和搜索歷史條目。
      如果您希望增加這個數目,可以在.vimrc文件中添加如下配置:
      set history=1000 " 保持1000個命令和搜索的歷史記錄
    • 此外,還可以通過修改viminfo文件中的相應參數來持久化歷史記錄,即使關閉了Vim之后也能保留下來。
    • 請注意,更改.viminfo文件的內容可能會影響其他與歷史相關的功能,因此建議謹慎操作。

14.2 命令行補全

Vim提供了多種命令行補全的功能,可以極大地提高用戶的編輯效率。
Vim的命令行補全不僅限于簡單的文件名或路徑補全,還包括關鍵字、字典、標簽等多種類型的補全。
以下是關于Vim命令行補全的一些詳細介紹:

  • 基本命令行補全
    在Vim的命令行模式下(即輸入:后),用戶可以通過按下Tab鍵來實現基本的命令補全。
    這種補全方式適用于命令、文件名和目錄名等。
    如果當前輸入的部分有多個可能的匹配項,連續按兩次Tab鍵將會列出所有可能的匹配項。
    然而,默認情況下,這種方式不會顯示所有匹配的命令或文件名。
    為了改進這一點,可以在$HOME/.vimrc配置文件中添加一行設定:
    set wildmode=list:longest
    這將使得當用戶輸入部分命令或文件名并按下Tab鍵時,Vim會嘗試列出所有可能的匹配項,并展示最長的公共前綴。

  • 更高級的命令行補全
    除了基本的補全外,Vim還支持更復雜的命令行補全,比如整行補全、根據當前文件中的關鍵字補全、字典補全、同義詞字典補全等。
    這些補全可以通過特定的快捷鍵組合觸發,例如:

    • 整行補全Ctrl-X Ctrl-L用于查找并補全與當前行相似的其他行。
    • 關鍵字補全Ctrl-X Ctrl-N用于從當前文件中查找匹配的關鍵字;而Ctrl-X Ctrl-P則是向前查找關鍵字。
    • 字典補全Ctrl-X Ctrl-K允許用戶定義一個字典文件,從中查找匹配的單詞。
    • 同義詞字典補全Ctrl-X Ctrl-T用于基于用戶提供的同義詞庫進行補全。
    • 文件名補全Ctrl-X Ctrl-F用于補全文件路徑和文件名。
  • 自定義補全設置

    • 為了更好地適應個人的工作流程,用戶還可以自定義Vim的補全行為。

      例如,通過修改.vimrc文件中的選項,如completedictionarythesaurus等,以指定不同的補全來源。

    • 此外,還可以利用插件如YouCompleteMe來增強代碼補全的能力,特別是對于編程語言的支持。
  • 配合Zsh使用

    • 值得注意的是,在某些情況下,Vim的命令行補全可能會與shell環境下的命令補全混淆。
      例如,在Zsh環境下,用戶可以通過安裝zsh-autosuggestions插件來獲得更加智能的命令建議,包括對Vim命令的支持。
      這意味著即使是在終端外部,用戶也能享受到類似于Vim內部的高效命令補全體驗。
  • 綜上所述

    • Vim提供了豐富的命令行補全機制,無論是簡單的文件名補全還是復雜的代碼片段補全,都能滿足不同場景下的需求。
      通過適當的配置和工具集成,用戶可以顯著提升在Vim中的工作流效率。

14.3 與Shell交互

有時需要在不離開Vim的情況下運行外部命令。

  • 這時可以使用!command的形式直接調用shell命令,結果將被顯示在屏幕上。
    如果想要把輸出插入到當前緩沖區,則可以在命令前加上r,如:r !ls會將當前目錄下的文件列表插入光標位置。
  • 另一個有用的特性是能夠在后臺啟動進程而不阻塞Vim界面,這對于長時間運行的任務特別有用。

Vim編輯器與Shell之間的交互是Linux系統管理員和開發者日常工作中非常重要的技能之一。
這種交互可以通過多種方式實現,不僅提高了工作效率,還能簡化復雜的任務處理流程。
下面我們將深入探討幾種常見的Vim與Shell交互的方式。

  • 在Vim中執行Shell命令

    • 在Vim中可以直接執行Shell命令而無需退出編輯器。
      這可以通過使用!字符來完成,它允許你在不離開Vim的情況下運行外部命令。

      例如,如果你想檢查當前的時間或日期,可以在命令模式下輸入如下命令:
      :!date
      執行后,屏幕上會顯示當前的日期和時間;按回車鍵即可返回到原來的編輯位置繼續工作。

    • 此外,你還可以創建一個臨時的shell會話,在其中連續運行多個Unix命令,而不必每次都回到Vim編輯狀態。
      要創建這樣的shell會話,可以使用:sh或者 :shell命令。
      當你完成所有需要的操作并準備返回Vim時,只需按下Ctrl-D 或 輸入exit命令即可。

  • 將Shell命令輸出插入到文件中

    • 有時候我們可能希望將某個命令的結果直接插入到正在編輯的文件里。
      為此,Vim提供了:r !command語法,用于讀取命令的標準輸出并將結果追加到當前行之后。

      比如,要獲取目錄列表并將其添加到文檔末尾,可以這樣做:
      :r !ls -l

    • 同樣地,如果想要對特定范圍內的行應用某些過濾器(如排序),你可以指定行號范圍加上!符號后跟上相應的命令。

      例如,要對第96至99行的內容進行排序,可以使用以下命令:
      :96,99!sort

  • ** 使用Ctrl-Z掛起Vim進程**

    • 另一種方便的方法是在編輯過程中暫時將Vim放到后臺,以便能夠快速切換到shell環境中執行其他任務。
      要做到這一點,只需要在普通模式下按 Ctrl-Z 組合鍵即可。
      之后就可以自由地在 shell 提示符下操作了。
      當再次需要恢復Vim會話時,只要簡單地輸入 fg 命令就能讓Vim重新回到前臺
  • Shell腳本變量的編輯

    • 對于編寫Shell腳本來說,利用Vim的強大功能來進行文本編輯是非常有幫助的。
      由于Shell腳本本質上就是一系列命令組成的文本文件,因此我們可以像對待普通文本那樣對其進行修改。

      例如,當我們需要批量替換某個變量名時,可以使用Vim內置的搜索替換功能,即 :%s/old_variable/new_variable/g 命令。
      這將在整個文件范圍內查找并替換所有的匹配項。

    • 另外,如果你經常需要處理類似的變更,還可以考慮為Vim配置一些自定義映射或宏,以加速重復性工作的完成。

      例如,設置一個快捷鍵專門用來插入常用的環境變量聲明等。

綜上所述,通過上述幾種方法,我們可以看到Vim不僅僅是一個簡單的文本編輯工具,更是一個強大的集成開發環境,尤其是在結合Shell編程時展現出了極大的靈活性和實用性。

十六、文檔幫助

最后但同樣重要的是,Vim內置了一個詳盡的幫助系統。
只需輸入:help topic就能獲取關于幾乎任何主題的幫助文檔。
這個內嵌的幫助不僅涵蓋了基本命令,還包括了對插件的支持說明和其他高級話題。

十七、總結

綜上所述,Vim不僅僅是一個簡單的文本編輯器,它更像是一個可以根據個人需求靈活調整的工作平臺。
隨著經驗的增長,你會發現越來越多的方法來優化你的工作流程,無論是通過學習新的快捷鍵組合還是探索社區提供的豐富資源。

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

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

相關文章

構建優雅、高效的 Nodejs 命令行工具 - Archons

目錄 項目簡介安裝基本用法樣例創建一個簡單的命令行工具使用archons上下文創建進度條 最后 項目地址: https://github.com/noctisynth/archons Bug反饋或功能請求&#xff1a;https://github.com/noctisynth/archons/issues 項目簡介 Archons意思是“執政官”&#xff0c;我使…

怎么投稿各大媒體網站?如何快速辨別一家媒體是否適合自己?

在做軟文營銷時&#xff0c;除去在官號和子賬號上投稿外&#xff0c;怎么投稿各大媒體網站是困擾中小企業主的一大難題。沒有多余賬號、運營成本太高&#xff0c;讓不少想做全平臺推廣的朋友止步于此。為了解決這些問題&#xff0c;今天就讓小編來分享一下&#xff0c;怎么在各…

MES設備日志采集工具

永久免費: <下載> <使用說明> 用途 定時全量或增量采集工控機,電腦文件或日志. 優勢 開箱即用: 解壓直接運行.不需額外下載.管理設備: 后臺統一管理客戶端.無人值守: 客戶端自啟動,自更新.穩定安全: 架構簡單,兼容性好,通過授權控制訪問. 架構 技術架構: Asp…

rhel7.9利用有網絡環境打包ansible

RHEL7.9激活(可省略) # 注冊 subscription-manager register --usernameyour_username --passwordyour_password --auto-attach # 查看訂閱狀態 subscription-manager list # 將 “enabled1” 改為 “enabled0” vi /etc/yum/pluginconf.d/subscription-manager.conf 配置阿…

Formality:參考設計/實現設計以及頂層設計

相關閱讀 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482??? Formality存在兩個重要的概念&#xff1a;參考設計/實現設計和頂層設計&#xff0c;本文就將對此進行詳細闡述。參考設計/實現設計是中兩個重要的全局概念&am…

網絡安全中攻擊溯源有哪些方法?

目前網絡攻擊已經成為常見的安全威脅之一&#xff0c;其造成的危害和損失都是不可估量的&#xff0c;因此網絡攻擊受到了高度重視。而當我們遭遇網絡攻擊時&#xff0c;攻擊溯源是一項非常重要的工作&#xff0c;可以幫助我們迅速發現并應對各類網絡攻擊行為&#xff0c;那么網…

國產編輯器EverEdit - 復制為RTF

1 復制為RTF 1.1 應用背景 在寫產品手冊或者其他文檔時&#xff0c;可能會用到要將產品代碼以樣例的形式放到文檔中&#xff0c;一般的文本編輯器拷貝粘貼到Word中也就是普通文本&#xff0c;沒有語法著色&#xff0c;這樣感觀上不是太好&#xff0c;為了讓讀者的感觀更好一點…

【設計模式-結構型】裝飾器模式

一、什么是裝飾器模式 裝飾器模式&#xff08;Decorator Pattern&#xff09;是一種結構型設計模式&#xff0c;它的核心思想是在不改變原有對象結構的情況下&#xff0c;動態地給對象增加一些功能&#xff0c;從而達到擴展功能的目的。舉個例子&#xff0c;今天在家媽媽給蒸饅…

redux 結合 @reduxjs/toolkit 的使用

1&#xff0c;使用步驟 使用React Toolkit 創建 counterStore&#xff08;store目錄下&#xff09; --> 為React注入store&#xff08;src下面的index&#xff09; --> React組件使用store中的數據&#xff08;組件&#xff09; 2&#xff0c;例如下面有一個簡單加減的…

動態規劃【打家劫舍】

今天和大家分享一下動態規劃當中的打家劫舍題目&#xff0c;希望在大家刷題的時候提供一些思路 打家劫舍1&#xff1a; 題目鏈接&#xff1a; 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 題目描述&#xff1a; 你是一個專業的小偷&#xff0c;計劃偷竊沿街的房屋…

KVM創建ubuntu20.04虛機,部署K8S,再克隆出二份,做為Worker節點加入集群,通過Helm創建2個Pod,讓它們之間通過域名互訪

KVM創建ubuntu20.04虛機,部署K8S,再克隆出二份,做為Worker節點加入集群,通過Helm創建2個Pod,讓它們之間通過域名互訪 一.背景二.操作步驟1.安裝KVMA.在BIOS中開啟VT-dB.修改grub,開啟iommu在/etc/default/grub 中 GRUB_CMDLINE_LINUX行 添加 intel_iommuon iommupt重新創建引導…

【機器學習實戰入門項目】使用Python創建自己的表情符號

深度學習項目入門——讓你更接近數據科學的夢想 表情符號或頭像是表示非語言暗示的方式。這些暗示已成為在線聊天、產品評論、品牌情感等的重要組成部分。這也促使數據科學領域越來越多的研究致力于表情驅動的故事講述。 隨著計算機視覺和深度學習的進步&#xff0c;現在可以…

BEVFusion論文閱讀

1. 簡介 融合激光雷達和相機的信息已經變成了3D目標檢測的一個標準&#xff0c;當前的方法依賴于激光雷達傳感器的點云作為查詢&#xff0c;以利用圖像空間的特征。然而&#xff0c;人們發現&#xff0c;這種基本假設使得當前的融合框架無法在發生 LiDAR 故障時做出任何預測&a…

OSI七層協議——分層網絡協議

OSI七層協議&#xff0c;顧名思義&#xff0c;分為七層&#xff0c;實際上七層是不存在的&#xff0c;是人為的進行劃分,讓人更好的理解 七層協議包括&#xff0c;物理層(我),數據鏈路層(據),網絡層(網),傳輸層(傳輸),會話層(會),表示層(表),應用層(用)(記憶口訣->我會用表…

6. NLP自然語言處理(Natural Language Processing)

自然語言是指人類日常使用的語言&#xff0c;如中文、英語、法語等。 自然語言處理是人工智能&#xff08;AI&#xff09;領域中的一個重要分支&#xff0c;它結合了計算機科學、語言學和統計學的方法&#xff0c;通過算法對文本和語音進行分析&#xff0c;使計算機能夠理解、解…

Ubuntu使用指南

Ubuntu使用指南 一、Ubuntu虛擬機1、本地如何連接虛擬機&#xff0c;并設置虛擬機可以訪問外網 一、Ubuntu虛擬機 1、本地如何連接虛擬機&#xff0c;并設置虛擬機可以訪問外網 本地&#xff1a;WMware設置為橋接模式&#xff08;此時虛擬機可以看作一臺獨立主機&#xff09;…

【Mysql進階知識】Mysql 程序的介紹、選項在命令行配置文件的使用、選項在配置文件中的語法

目錄 一、程序介紹 二、mysqld--mysql服務器介紹 三、mysql - MySQL 命令行客戶端 3.1 客戶端介紹 3.2 mysql 客戶端選項 指定選項的方式 mysql 客戶端命令常用選項 在命令行中使用選項 選項(配置)文件 使用方法 選項文件位置及加載順序 選項文件語法 使用舉例&am…

wireshark抓路由器上的包 抓包路由器數據

文字目錄 抓包流程概述設置抓包配置選項 設置信道設置無線數據包加密信息設置MAC地址過濾器 抓取聯網過程 抓包流程概述 使用Omnipeek軟件分析網絡數據包的流程大概可以分為以下幾個步驟&#xff1a; 掃描路由器信息&#xff0c;確定抓包信道&#xff1b;設置連接路由器的…

【藍橋杯】43687.贏球票

題目描述 某機構舉辦球票大獎賽。獲獎選手有機會贏得若干張球票。 主持人拿出 N 張卡片&#xff08;上面寫著 1?N 的數字&#xff09;&#xff0c;打亂順序&#xff0c;排成一個圓圈。 你可以從任意一張卡片開始順時針數數: 1,2,3 ? ? 如果數到的數字剛好和卡片上的數字…

SQL-leetcode—626. 換座位

626. 換座位 表: Seat -------------------- | Column Name | Type | -------------------- | id | int | | student | varchar | -------------------- id 是該表的主鍵&#xff08;唯一值&#xff09;列。 該表的每一行都表示學生的姓名和 ID。 ID 序列始終從 1 開始并連續…