Jak zkopírovat obsah vkládat do editoru vi

117

Pro vkládání obsahu do dokumentu editoru vi jsem se pokusil pomocí kbd> Ctrl + V , ale Ctrl + V není interpretován jako vložka.

    
dané Rpj 16.02.2013 09:13

10 odpovědí

140

Nejprve se ujistěte, že jste v režimu úprav (stiskněte i ). Pak můžete vložit klávesy Ctrl + Shift + V , pokud jste v terminálovém emulátoru jakognome-terminal z nabídky pravým tlačítkem myši).

Můžete také zadat:set paste v vim před vložením, abyste zakázali automatické odsazení apod. Potom poté, co jste obsah vložili do složky:set nopaste.

Další informace naleznete na stránce tato otázka na stránce stackoverflow.com.

Chcete-li kopírovat / vkládat řádky vvim (na rozdíl od vložení obsahu schránky), budete chtít zkontrolovat příkaz yank . Zde je cheat list , který vám může pomoci.

    
odpověděl Attila O. 16.02.2013 09:27
52

Vi (a Vim) funguje velmi odlišně ve srovnání s běžným textovým editorem, jako je Gedit. Má také velmi strnující křivku učení. Pokud se chcete dozvědět některé základní příkazy, začněte tento interaktivní výukový program .

Chcete-li však odpovědět na vaše dotazy. Obsah schránky systému je přístupný prostřednictvím registru plus. Chcete-li něco ze schránky systému vložit, můžete z normálního režimu stisknout: "+ p (ne zároveň, ale za sebou).

    
odpověděl Daniel Jonsson 16.02.2013 09:34
24

  1. Chcete-li kopírovat obsah vložení do stejného souboru , použijteyank apaste.

  2. Chcete-li zkopírovat obsah vložení do terminálů , otevřete první soubor, vytrhněte požadovaný text a poté otevřete druhý soubor v rámci vim (např.:tabnew /path/to/second/file) a stisknětep jej vložte.

  3. Pokud chcete zkopírovat obsah z vim do externího programu , musíte se dostat do schránky systému. Předpokládám, že používáte Ubuntu. Verze grafického uživatelského rozhraní vim má vždy podporu schránky, avšak pokud chcete používat Vim z terminálu, budete muset zkontrolovat podporu X11 schránky.

    Z konzoly zadejte:

    $ vim --version | grep xterm
    

    Pokud zjistíte -xterm_clipboard , máte dvě možnosti:

    1) Kompilace vim sami s příznakem xterm_clipboard na

    2) Odinstalujte vim, namísto toho nainstalujte gvim (vim-gtk nebo vim-gnome). Můžete se držet non-gui vim voláním vim z terminálu, stejně jako předtím. Tentokrát při kontrole byste měli najít + xterm_clipborad .

    Nyní, když vymažete nějaký text v registru + v editoru vim (např. "+ yy"), zkopíruje se do schránky systému, kterou můžete získat z externího programu, jako je editor gedit, pomocí Ctrl + V .

  4. Pokud chcete zkopírovat vložený obsah z externího programu do vim , nejprve zkopírujte text do schránky systému přes Ctrl + C v editoru vim režim vložení klikněte na tlačítko středové tlačítko (obvykle kolečko) nebo stiskněte Ctrl + Shift + V pro vkládání.

    Jedná se o 4 základní kopírování & vložte podmínky související s vim. Doufám, že to pomůže.

odpověděl 47dev47null 20.02.2013 06:53
15

Vždy používám Shift + Vložit , když chci vložit text do terminálu, pracuje ve všech terminálových programech.

(což je také důvod, proč jsem nikdy nedostal notebook, kde nemůžete stisknout Vložit bez stisknutí sekundárního klíče)

    
odpověděl Magnus Jonsson 17.02.2013 17:59
10

Použijte středové tlačítko myši pro vložení textu, který jste vyzdvihli jinde.

Je užitečné, když nemáte přístup do schránky systému (například ve vzdálené relaci SSH).

Musí být v režimu úprav / vkládání pro Vim.

    
odpověděl will-ob 16.02.2013 17:09
5

Jakmile zadáte vi, stisknutími se dostanete do režimu vložení, klikněte pravým tlačítkem myši na terminál a klikněte na vložení.

    
odpověděl GC 13 17.02.2013 07:34
4

Podrobné pokyny pro kopírování / vkládání řádků textu v vi pomocíyank aput

(v příkazovém režimu v vi) použijte

Kopírovat (YANK)

Kopírování jednoho řádku v vi:

  • V příkazovém režimu přesuňte kurzor na řádek, který je třeba zkopírovat, a zadejteyy nebo zadejteY

Chcete-li kopírovat 2 řádky v vi:

  • V příkazovém režimu přesuňte kurzor na první řádek, který je třeba zkopírovat, a zadejte2yy nebo zadejte2Y

(lze také kopírovat libovolný počet řádků)

Chcete-li zkopírovat všechny řádky z aktuálního umístění na konec souboru:

  • V příkazovém režimu přesuňte kurzor na první řádek, který je třeba zkopírovat, a zadejteyG

Chcete-li zkopírovat celý text z aktuálního umístění na konec aktuálního slova:

  • V příkazovém režimu přesuňte kurzor na místo, odkud je třeba zkopírovat text, a zadejteyw

Chcete-li zkopírovat celý text z aktuálního umístění na konec řádku:

  • V příkazovém režimu přesuňte kurzor na místo, odkud je třeba zkopírovat text, a zadejtey$

Vložit (PUT)

Text vložený do schránky - po umístění kurzoru:

  • V příkazovém režimu zadejtep

Chcete-li vložit schránku do schránky - před umístěte kurzor:

  • V příkazovém režimu zadejteP
odpověděl slayernoah 03.11.2013 22:43
0

Pokud jste root : Ctrl + Shift + V

Pokud jste ne-root : klikněte na tlačítko myši.

    
odpověděl Eliptical view 01.07.2017 08:54
0

Chtěl jsem jen poznamenat, že pomocí Vim přes Git Bash na Windows můžete jednoduše použítp nebo kliknout myší na střed, aniž byste byli v režimu vložení. Pomocí Vim přes PuTTY můžete kliknout pravým tlačítkem myši. A zvýraznění kopírování.

Zaznamenal jsem to proto, že jsem sem přišel neviděl, že to je SE pro Ubuntu.

Další užitečné příkazy:

  • yy (počet řádků) - yank (copy)
  • dd (# řádků) - smazat
  • p - vložte řádek pod aktuální řádek
  • Shift + p - vložte řádku nad aktuální řádek
  • u - vrátit zpět
  • r - redo
  • i - režim vložení
  • v - vizuální režim
odpověděl Tyler Christian 21.07.2017 05:27
0

Měl jsem problém, protože moje instalace Vim nepodporovala schránku :

vim --version | grep clip
-clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      -mouseshape      +startuptime     -xterm_clipboard

Nainstaloval jsem vim-gnome (který podporuje schránku) a znovu zkontroloval:

vim --version | grep clipboard
+clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      +mouseshape      +startuptime     +xterm_clipboard

Nyní můžu kopírovat a vkládat pomocí "+ y a" + p.

    
odpověděl Ashutosh Tripathy 09.06.2018 13:35