Copy-paste pro vim nefunguje, když je zapnutá myš (: set mouse = a)?

Pokoušel jsem se zkopírovat něco z vimu do jiné aplikace a také z této aplikace do vim pomocí klikněte pravým tlačítkem myši a poté zkopírujte a vložte (nebo pomocí Ctrl + v a Ctrl + c a také vyzkoušejte verze Command pro mac OSX, samozřejmě.). Když to však zkusím, zkopíruje první slovo pouze tehdy, když to udělám z vim nebo když zkopíruji z aplikace do vim, zkopíruje vše, ale vloží podivné karty a mezery. Myslím, že se to stalo, když jsem se rozhodl zapnout myš v terminálu. Stejně jako v:

:set mouse=a 

Mám tento řádek v mém .vimrc souboru na iTermu (Mac OS X). Je však možné, aby se moje kopie vložila do jiných aplikací, které nejsou v vim, aby se nerozbily se zapnutou mouse=a? Nebo je alespoň možné vypnout myš, když provádím kopírování? Udělal jsem :help myš, ale komentáře pro mě nebyly užitečné. Vložil bych je sem, ale … můj nástroj pro kopírování a vložení je nefunkční!

Zkusil jsem :set mouse! a :set mouse=a! ale to neudělalo nic užitečného … 🙁


Další informace o mém prostředí:

Většinu času však používám i tmux, ale tuto chybu jsem testoval / chyba bez relace tmux, proto jsem to zveřejnil hlavně jako otázku vim.

Komentáře

  • Mohu vám říci, že je schopen se snadno přesunout k primárnímu výběru pomocí slovesa y. Nevím ‚ nevím proč byste to ‚ prostě nepoužili.
  • Nedělal bych to ‚ protože to nedělám ‚ nevím, jak to udělat, omlouvám se za mou nekompetentnost. ‚ Nevím ani to, že existuje, dokud to nezmíníte. Sdílejte prosím své znalosti! 🙂
  • Je to macvim ?
  • ne, není to jen iTerm (jak jsem již zmínil v otázce, ale dobrá otázka).
  • @Pinocchio – podívejte se zde: Jak vytvořit vim paste ze (a zkopírovat) do systému ‚ s schránky? .

Odpovědět

mouse=a brání možnosti kopírování a vkládání z vim s čitelnými znaky.

Změnit mouse=a do mouse=r a to by s tím mělo vyřešit váš problém.

Jedna věc, kterou mě zajímá, je, měníte konfigurační soubor pro svůj vim s myší nastavenou na mouse = a?

původní odpověď ^

Pokud mouse=r neposkytuje vám všechny možnosti kopírování v minulosti, změňte to na mouse=v

Oba mouse=r a mouse=v mají stejné funkce, jaké potřebujete, ale v závislosti na vimrc, který používáte, bude fungovat lépe než ten druhý.

Komentáře

  • také jste se pokusili zvýraznit text a použít prostřední tlačítko myši k vložení na jiné místo, které má snazší funkci při pokusech o Ctrl + v a Ctrl + c
  • Nevím ‚ nevím, co znamená tvoje otázka: one thing I am wondering is, are you changing the config file for your vim with the mouse set to mouse=a? Myslíš, když mám :mouse=a zapnuto v mém souboru .vimrc? Mám :mouse=a v mém souboru .vimrc.
  • jen --with-x=yes? Nemusím uvádět :set --with-x=yes mouse=a nebo něco ing? Mohli byste objasnit, co máte na mysli?
  • Dovolte mi prozkoumat, zda potřebujete kombinovat --with-x=yes do set mouse=a. Když jsem to četl, viděl jsem jen to, že to bylo samo v konfiguračním souboru. Může to ale být jinak, takže se chci ujistit, že vám řeknu správnou věc, která pro vás bude fungovat.
  • Děkuji mnohokrát, tento návrh funguje jako kouzlo s myší = v

Odpověď

Pro uživatele OS X: Chcete-li kopírovat a vložit pomocí mouse=a použijte alt místo Shift pro výběr textu. Potom cmd-c a cmd-v fungují podle očekávání.

Tuto odpověď najdete zde https://stackoverflow.com/a/4608387/671639 po mnoha procházkách.

Komentáře

  • Jsi Bůh … …: ‚)
  • jediná věc, která pro mě fungovala, díky!
  • Pro mě na OSX funguje “ fn “ místo “ shift “ nebo “ alt „.
  • Nastavení mouse=v pro mě fungovalo s přímým cmd + c

Odpověď

Z https://stackoverflow.com/questions/4608161/copy-text-out-of-vim-with-set-mouse-a-enabled/4608387

Při výběru myší stiskněte klávesu „shift“. Díky tomu se bude výběr myši chovat, jako by mouse = a nebyl povolen.

Toto funguje a bylo ověřeno recenzenty přetečení zásobníku, kteří to přijali jako odpověď 🙂

Odpověď

Měl stejný problém: pomocí myši nelze zvýraznit, takže nelze kopírovat a vkládat z VIM v relaci terminálu do dokumentu a prohlížeče Windows: následující a nyní to funguje:

: set clipboard=unnamedplus : set mouse=r 

Odpověď

Bharathovo řešení , stisknutí klávesy Shift během kopírování to udělá, ale zkopíruje více než to, co byste chtěli kopírovat v případě číslování nebo hash komentáře.

Jedním ze způsobů, jak toho dosáhnout, i když mouse = a je použít vizuální režim stisknutím klávesy V pro jeden kurzor nebo Shift + V pro zvýraznění celého řádku a můžete se pohybovat nahoru nebo dolů pomocí šipek a používat Y zkopírovat nebo D oříznout a th by mělo fungovat.

Komentáře

  • @Anthon, udělám, děkuji za vysvětlení.
  • Přeformuloval jsem vaše vlastní vyslovený komentář, aby to vypadalo spíše jako odpověď, takže mody to pravděpodobně nechají tak, jak jsou (a můžete si tím získat nějakou reputaci, abyste mohli komentovat). Pokud by byl originál menší opravou, bylo by vhodnější komentovat.

Odpovědět

Odkaz: http://vimdoc.sourceforge.net/htmldoc/options.html

Podívejte se na sekci Poznámka v dolní části odkazu:
Když povolením myši lze tlačítka myši stále používat podržením stisknuté klávesy Shift. To zahrnuje kopírování a vkládání pomocí tlačítek myši.

*"mouse"* *E538* "mouse" string (default "", "a" for GUI, MS-DOS and Win32) global {not in Vi} Enable the use of the mouse. Only works for certain terminals (xterm, MS-DOS, Win32 |win32-mouse|, QNX pterm, *BSD console with sysmouse and Linux console with gpm). For using the mouse in the GUI, see |gui-mouse|. The mouse can be enabled for different modes: n Normal mode v Visual mode i Insert mode c Command-line mode h all previous modes when editing a help file a all previous modes r for |hit-enter| and |more-prompt| prompt Normally you would enable the mouse in all four modes with: :set mouse=a When the mouse is not enabled, the GUI will still use the mouse for modeless selection. This doesn"t move the text cursor. See |mouse-using|. Also see |"clipboard"|. Note: When enabling the mouse in a terminal, copy/paste will use the "* register if there is access to an X-server. The xterm handling of the mouse buttons can still be used by keeping the shift key pressed. Also see the "clipboard" option. 

Komentáře

  • Děkujeme za přispění tímto odkazem, ale , odpovídá na otázku ? Pokud ano, můžete určit část nabídky, která tak činí, a uvést souhrn skutečné odpovědi?

Odpovědět

Na mém počítači Mac pomohly tyto dvě věci:

  • : set mouse- = a
  • fn + kliknutí (místo shift nebo alt)

Odpověď

Tyto dva řádky níže použijte v ~/.vimrc k použití všechny pěkné funkce gui-mouse a vložení do systémové schránky pomocí y (klíč), pokud opravdu nepotřebujete žádné další vyrovnávací paměti schránky :

set mouse=a set clipboard=unnamed 

Odpověď

Můžete použít y zkopírovat (vytrhnout) a p vložit i při :set mouse=a nastaveném v ~/.vimrc. Použijte v + arrow keys pro zvýraznění textu. Chcete-li rychle zkopírovat celý řádek, použijte shift + y .

Odpověď

Jako f nebo druhá část vaší otázky, kde jste zadali, že při vkládání z jiných aplikací do vim přidává karty / mezery. Zkuste to přidat do sady ~ / .vimrc set paste nebo do vim před vložením v normálním režimu stiskněte „shift“ + „:“ a zadejte „set paste“

Odpovědět

Je třeba přidat dvě věci:

  1. Mnohokrát mějte na paměti, že set mouse=v nebude fungovat podle očekávání v závislosti na jiné direktivy, které jste nastavili před nebo po v .vimrc souboru, záleží také na tom, ze kterého terminálu používáte vim;
  2. Doporučil bych ponechat mouse=a takže máte současně aktivovaný veškerý režim myši a pomocí triku navrženého společností @BHS zvýrazníte text, zatímco v případě, že potřebujete zvýrazněný text vložit pomocí prostřední myši, stiskněte klávesu Shift tlačítko ( Kopírování textu mimo Vim s set mouse=a povoleným ).

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *