簡體   English   中英

"如何在 Vim 中移動到行尾?"

[英]How do I move to end of line in Vim?

我知道通常如何在命令模式下移動,特別是跳轉到行等。但是跳轉到我當前所在行末尾的命令是什么?

"

只是$ (美元符號)鍵。 您可以使用A移動到行尾並切換到編輯模式 (Append)。 要跳轉最后一個非空白字符,可以先按g然后按_鍵。

順便說一下, A的反面是I (在行首插入模式)。 僅按^會將光標置於該行的第一個非空白字符處。

正如很多人所說:

  • $ 帶你到行尾

但是也:

  • ^_將您帶到該行中的第一個非空白字符,並且
  • 0 (零)讓你到行的開頭,包括。 空白
  • $移動到該行的最后一個字符。
  • g _轉到最后一個非空白字符。

  • g $轉到屏幕行的末尾(當緩沖區行跨多個屏幕行時)

主要問題 - 行尾

$到行尾,保持命令模式

A到行尾,切換到插入模式

相反 - 行首(技術上是第一個非空白字符)

^到行首,保持命令模式

I (大寫 i) 到行首,切換到插入模式

進一步 - 行首(從技術上講,第一列與空格無關

0 (零)到行首,保持命令模式

0i (零后跟小寫 i)進入行首,切換到插入模式

對於那些開始學習 vi 的人,這里有一個很好的 vi 介紹,它並排列出了典型的 Windows GUI 編輯器光標移動和快捷鍵的 vi 命令。

適用於 Windows 用戶的 vi 編輯器

如果當前行環繞可見屏幕到下一行,則可以使用g$到達行的末尾。

我在標准終端中看不到用於 vim 的 macbook 熱鍵。 希望它會幫助某人。 對於 macOS 用戶(在 macbook pro 2018 上測試):

fn + - 移動到起始行

fn + - 移動到結束行

fn + - 向上移動頁面

fn + - 向下移動頁面

fn + g - 將光標移動到文檔的開頭

fn + shift + g - 將光標移動到文檔末尾

對於最后兩個命令,有時需要點擊兩次。

美元符號:$

A從行尾開始進入編輯模式。

'End' 鍵的優點是它可以在正常和插入模式下工作。

'$' 僅適用於普通/命令模式,但它也適用於經典的 vi 編輯器(很高興知道 vim 不可用時)。

在許多情況下,當我們在一個字符串中時,我們被雙引號括起來,或者在編寫語句時我們不想按轉義鍵並使用箭頭鍵轉到該行的末尾並按分號( ; )只是為了結束行。 vimrc文件中寫入以下行:

imap <C-l> <Esc>$a

這條線說什么? 它將 Ctrl+l 映射到一系列命令。 這相當於你一次按下Esc (命令模式)、 $ (行尾)、 a (追加)。

還要注意line (或者可能是物理 line)和screen line之間的區別。 一行由行尾字符 ("\\n") 終止。 屏幕行是在終端或屏幕中顯示為一行字符的任何內容。 如果您的物理線長於屏幕寬度,這兩者就會分開,這在編寫電子郵件等時很常見。

這種區別也體現在行尾命令中。

  • $0 分別移動到物理行或段落的末尾或開頭:
  • g $g 0 分別移動到屏幕行或段落的末尾或開頭。

如果你總是喜歡后一種行為,你可以像這樣重新映射鍵:

:noremap 0 g0
:noremap $ g$

或者有一個顯而易見的答案:使用End鍵轉到行尾。

可能不相關,但如果你想在當前行之后開始一個新行,你可以在行中的任何地方使用 o 。

最簡單的選擇是鍵入$ 如果您正在處理文本塊,您可能會喜歡使用命令{}來分別前后移動段落。

我習慣於 Home/End 在插入模式下讓我進入行的開始和結束(從在 Windows 中使用,我認為是 Linux),Mac 不支持。 這特別煩人,因為當我在遠程系統上使用 vim 時,我也無法輕松做到。 經過一些痛苦的反復試驗,我想出了這些.vimrc行,它們做同樣的事情,但綁定到 Ctrl-A 作為行的開頭和 Ctrl-D 作為行的結尾。 (出於某種原因,我想 Ctrl-E 是保留的,或者至少我無法找到綁定它的方法。)享受吧。

:imap <Char-1> <Char-15>:normal 0<Char-13>
:imap <Char-4> <Char-15>:normal $<Char-13>

這里有一個很好的圖表,用於其他人的 ASCII 控制字符代碼:

http://www.physics.udel.edu/~watson/scen103/ascii.html

您也可以執行 Ctrl-V + Ctrl- ,但這並不能粘貼到這樣的地方。

如何移動到包括空格在內的行尾?

"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM