W terminalu vim, wklejanie danych ze schowka często zaburza wcięcie kodu. Po prostu wiedziałem, że jeśli użyję :set paste
wcięcia, to nie jest zepsute. Chociaż po wklejeniu danych powinienem to zrobić :set nopaste
ponownie? Co jeśli nie, jaki problem się pojawi?
19
Odpowiedzi:
Jak napisali inni, nie chcesz pozostawiać zestawu „wklej”. Chciałem tylko zaznaczyć, że przy dobrym emulatorze terminali oraz odpowiednio skompilowanej i skonfigurowanej
vim
nie trzeba zmieniać „wklejania”. Potrzebujesz dobrego emulatora terminala, takiego jak xterm lub GNOME Terminal, vim z dołączoną funkcją X11, a opcja „mysz” ustawiona na „a”. Wtedyvim
„będzie wiedział”, kiedy wklejasz myszką, i skutecznie ustawi i usunie opcję „wklej”.Jednym ze sposobów, aby uzyskać
vim
z funkcją X11 jest uruchomieniegvim
z-v
opcją lub utworzyć alias,Następnie włóż
w twoim ~ / .vimrc.
źródło
Copy
będzie wyszarzony lub w ogóle niewidoczny, chyba że zaznaczono jakiś tekst. Jak wybierasz tekst do skopiowania?Ten post ma moją ulubioną odpowiedź, https://coderwall.com/p/if9mda/automatically-set-paste-mode-in-vim-when-pasting-in-insert-mode
Zasadniczo, jeśli zaczynasz w trybie wstawiania i używasz myszy Ctrl + Shift + V lub wklej prawym przyciskiem myszy, Vim wykrywa, że pochodzi on z terminala i automatycznie ustawia tryb wklejania, a następnie wyłącza go po zakończeniu, aby nie stracić ponownie mapowanych klawiszy (który nie może działać w trybie wklejania, ponieważ zapisuje nieprzetworzone dane), a po powrocie do stanu „rozsądnego”.
Po prostu vim (wstaw do swojego .vimrc)
Jeśli używasz vima pod Tmuxem (nadal działa w .vimrc)
źródło
let &t_SI .= "\<Esc>[?xxxxx"
linii wykrywa skrót wklejania klawiatury? Czy to działa również w przypadku komputerów Mac, biorąc pod uwagę inny skrót?Jak sugeruje romainl, dokumentacja wyjaśnia, że ustawienie tej
'paste'
opcji wyłącza kilka innych opcji, a na pewno okaże się, że prędzej niż później spowoduje to problemy. Z tego powodu istnieje'pastetoggle'
opcja. Widzieć:źródło
Jeśli coś istnieje, musi mieć swoje znaczenie. Powinieneś dobrze zapoznać się z dokumentacją vima, która jest bardzo przydatna.
Po przeczytaniu możesz chcieć:
Mam nadzieję, że ten post okaże się przydatny :)
źródło
IIRC po wklejeniu do vima, zasadniczo myśli, że sam wpisałeś wszystkie te postacie. Więc jeśli automatyczne wcięcie jest włączone, będzie ono wciskać rzeczy, ale wklejony tekst zwykle zawiera już wcięcie, więc wcięcie rzeczywiście zostaje „pomieszane”. Przełączenie do trybu wklejania wyłącza takie rzeczy jak automatyczne wcięcie.
Jeśli podoba Ci się automatyczne wcięcie podczas pisania, po zakończeniu wklejania powróć do nopaste. Spróbuj i zwróć uwagę, jak ręcznie wykonać wcięcia w trybie wklejania.
źródło