題 如何選擇Vi / Vim中的所有文本?


使用VI工具編輯配置文件。

如何選擇文件中的所有文本(大約1000行),複製它,然後粘貼到Google文檔?


155
2017-12-30 17:05


起源


i  Ctrl-A  Ctrl-C,不需要花哨的vim命令(實際上輸入比頂部答案更快) - Laconian Thinker


答案:


最簡單,最快捷的方法是使用:     ÿ  + 然後轉到Google文檔(或任何地方)並粘貼。 說明:

  •   引用下一個命令來處理所有行
  • ÿ猛拉那些線
  • +複製到系統剪貼板

另一種方式是 G  G    +  ÿ  G 但你可能會承認上述內容更快更容易。


131
2018-03-26 21:30



@Tuxmentat可以解釋每個鍵的作用 :%y+ - Jas
如果它解釋了每個鍵對兩個序列的作用,那麼這個答案會更好。 - AsksAnyway
我最好的猜測:':'表示我們正在使用“ex模式”命令(我認為)。無論如何,這是一個命令。 '%'是特別的 命令行範圍說明符 它指定整個文件。 'y'猛拉一切,'+'指定了 剪貼板寄存器。 :help <command>幫我解決了這個問題。 - Hawkeye Parker
我一定做錯了什麼。我打字 :%y+,我明白了 E488: Trailing characters - johny why
我得到“E850:無效的註冊名稱”。第二種方法適用於復制,但沒有到達Ubuntu 16.04上的系統剪貼板(對我來說,至少---我有一個可能影響事物的.vimrc)。 - EntangledLoops


許多給出的回復也會影響我不想要的選擇。

我正在使用 ggVG 為此目的(需要在正常模式下運行)。這個命令 只要 選擇文檔中的整個文本。

我甚至都重新製作了 按Ctrl + A 為此,我真的不需要用快捷方式增加整數(默認值 按Ctrl + A 地圖)。

只需將此添加到您的 .vimrc

map <C-a> <esc>ggVG<CR>

它有 <esc> 首先,確保用戶處於正常模式。


73
2018-05-29 15:09



正是我在尋找的東西,很高興看到Ctrl + A默認情況下沒有被vim佔用。希望沒有副作用。 - Nikos Alexandris
我個人用 ggVG但是 gg0vG$ 可能更合適,因為它更接近複製'正常'Ctrl + A操作。 - Sheharyar


您可以使用 cat file 然後選擇輸出並複制並粘貼,如果您需要將其粘貼到瀏覽器中。

對於vi,您可以選擇所有文本並將其寫入新文件:

shift v  -- visual mode
shift g -- jump to eof
"*y -- yank select text
:e my_new_file -- create a new file
"*p -- paste into a new file

從理論上講,這應該適用於Linux和Windows - 我在Mac上嘗試過它但它不起作用。


36
2017-12-30 17:21



粘貼到Web瀏覽器中 cat file 是要走的路。該 shift v 方法只複製到Vi的內部緩衝區。 - Aleksandr Levchuk
不是如果你使用系統剪貼板使用*註冊表 - 但這只適用於X,我在Windows上聽到 - 所以如果你ssh你需要-X - 來檢查vim是否支持這個到vim - :set clipboard + =無名
有沒有替代方法可以在不創建新文件的情況下執行此操作。如果我們在服務器上進行實時編輯,我們需要將備份代碼保留在本地計算機上,以便我們可以恢復。 - Nagama Inamdar
貓為+1,在膩子中選擇。當然,不適用於大文件,也不是最友好的用戶方法。但是對於復製到屏幕視口外的小腳本文件就足夠了。 - Arnis Juraga


使用ggVG。 輸入“gg”進入測試頂部 然後鍵入VG。


13
2017-12-29 12:47





gg"+yG

要么

gg"*yG

取決於+或*是否是系統剪貼板。 (在許多unix上,+是用於鼠標中鍵單擊的鼠標選擇緩衝區,*是系統剪貼板)。


6
2017-12-30 19:19



我認為這是另一種方式:“*是選擇,”+是剪貼板。 vimdoc.sourceforge.net/htmldoc/gui_x11.html#x11-selection - Mikel
你是對的。我也知道,但鍵入錯誤的東西。 - frabjous


我在CentOS-7環境中使用Vim 7.4。這對我選擇所有文本起了作用

:%y

然後就是 p 在下一個文件中,我想要一個完整的副本。

要么 

你可以使用cat命令。

cat copyfile > pastefile

這個git repo 還有一些其他有用的命令。


4
2017-07-17 04:07





對於Mac,請使用pbcopy(粘貼板副本):

cat file.txt | pbcopy

file.txt的內容現在位於剪貼板上,用於粘貼到另一個應用程序(例如瀏覽器)。

您還可以使用pbpaste將剪貼板的內容粘貼到文件中:

pbpaste > file.txt

雖然這不涉及vi,但它確實在Mac上實現了相同的目標。


3
2018-01-08 19:05





如果您使用的是Linux桌面,可以使用xclip或xsel將其加載到剪貼板中。對於那些大小的東西,您可能只想在谷歌文檔中使用上傳功能。


1
2017-12-30 17:28





另一種方式是:

你按 v 鍵盤上的鍵,將VIM轉為VISUAL

然後向下滾動選擇所有文本

^+ 插入 複印

轉移 +插入 將文字粘貼到Google文檔中的任何位置。


1
2017-07-12 14:20





不使用vi, 您可以使用API​​和cURL將文本上傳到Google文檔


0
2017-12-30 17:34



這與OP想要的相反 - .- - Rápli András