Vim'de kesici uç moduna yapıştırmak mümkün müdür?
Vim'de kesici uç moduna yapıştırmak mümkün müdür?
Yanıtlar:
Ekleme modundayken CTRL-R {register}
Örnekler:
CTRL-R * panonun içeriğine ekleyecek CTRL-R " (adsız kayıt) son silme veya kaydetmeyi ekler. Bunu vim'in yardım türünde bulmak için :h i_ctrl-r
CTRL-R *yalnızca GVIM'de veya x ile etkileşime girecek şekilde derlenmiş sürümlerde çalışır. Yazın vim --versionve arayın +xterm_clipboard. Buna sahip değilseniz, farklı bir vim sürümüne ihtiyacınız var. ( vim.wikia.com/wiki/Accessing_the_system_clipboard )
+clipboard, ama eğer sahipsen buna sahip +xterm_clipboardolmalısın. Bazı işletim sistemlerinde xterm_clipboardgeçerli değildir.
*yazmaç orta fare tıklaması ile +yapıştırılabilirken, geleneksel kopyala / yapıştır yöntemidir . standards.freedesktop.org/clipboards-spec/clipboards-latest.txt
Eğer Vim yapıştırılan metni, gelen biçimlendirme parçalamaya istemiyorsanız, ayrıca kullanmayı düşünün isteyebilirsiniz: :set paste. Bu, Vim'in kodunuzu yeniden sekmesini önleyecektir. Yapıştırma işlemi tamamlandığında :set nopaste, normal davranışa geri döner.
set pastetoggle=<F2>.Vimrc'nize benzer bir şey ekleyerek modu tek bir tuşla değiştirmek de mümkündür . Geçişli otomatik girintiyi değiştirme hakkında daha fazla ayrıntı burada .
:set nopasteyapıştırma modunu devre dışı bırakacak
:set paste!komut geçmişinizde muhtemelen macun ayarının çok yakın olmasıdır, bu nedenle ':' tuşuna basmanız, ardından ok tuşuna basmanız ve bir '!' İşareti eklemeniz yeterlidir.
:set paste! Teşekkürler hakkında daha iyi veya farklı ne :)
!içinde komutun sonunda vimaçık ve kapalı durumları ya komut. Bu şekilde yazmak zorunda kalmazsınız, :set nopastebunun yerine geçmişinizde yukarı doğru ilerleyebilir ve aynı komutu ( :set paste!) tekrar çalıştırabilirsiniz .
Hayır doğrudan değil. Bununla birlikte, tek bir normal mod işlemi için ekleme modundan hızlı bir şekilde çıkıp Ctrl-Osonra ekleme moduna geri dönecek şekilde yapıştırabilirsiniz.
Tuş Kombinasyonu: Ctrl-O p
EDIT: İlginç. Diğer insanların listelediği gibi bir yol var gibi görünüyor.
esc + p?
esc + p + ive yazmak için kesinlikle daha kolayCTRL-R + "
CTRL-R ". Örneğin, vimrc ayarları bunu değiştirebilse de, kullanarak yeni bir satıra bir şeyler yapıştırmak CTRL-O pgirintisini ortadan kaldırır.
Ekleme modundayken, kaydın şunlar olabileceği Ctrl-R {register}yerlerde kullanabilirsiniz :
+ pano için,* X panosu için (X'te son seçilen metin), " isimsiz kayıt için (Vim'de son silme veya çekilme),:h registers).Ctrl-R {register} metni sanki girilmiş gibi ekler.
Ctrl-R Ctrl-O {register} metni orijinal girintiyle ekler.
Ctrl-R Ctrl-P {register} metni ekler ve otomatik olarak girintiler.
Ctrl-Oekleme moduna dönmeden önce herhangi bir normal mod komutunu çalıştırmak için kullanılabilir, bu nedenle
Ctrl-O "+pörneğin kullanılabilir.
Daha fazla bilgi için şu belgelere bakın: :h i_ctrl-r
Panodan aşağıdakileri yapıştırmak için bunu kullanabilirsiniz Ctrlv:
set pastetoggle=<F10>
inoremap <C-v> <F10><C-r>+<F10>
Ve bu görsel seçimi panoya şu şekilde çekmek için Ctrlc:
vnoremap <C-c> "+y
Normal modda klasik vim yanma / yapıştırma ( y/ p) için panoyu varsayılan olarak kullanmak istiyorsanız , bunu yapan bir yapılandırma seçeneği vardır:
set clipboard=unnamedplus
Bu yapılandırmalarla, örneğin önce normal modda yank, sonra Ctrlvekleme modunda yapıştırabilirsiniz . Ayrıca, farklı vim örneklerinden ve farklı uygulamalardan metin yapıştırabilirsiniz.
Başka bir seçenek:
set clipboard=unnamed
Daha sonra X ortamınızda fareyi sürükleyerek bir şey seçebilir ve daha sonra vim'e yapıştırabilirsiniz. Ancak (bir nedenden dolayı) Vim'de bir şey ( y) çekemezsiniz ve shiftinsertdaha sonra başka bir yerde, muhtemelen oldukça sınırlayıcıdır.
Vim bu konuda dokümanlar: http://vim.wikia.com/wiki/Accessing_the_system_clipboard
Özel kayıtlardan yapıştırmak için diğer cevapları takip edebilirsiniz :). Bu cevap esas olarak Vim'i sistem panonuza entegre etmekle ilgilidir.
Not için bu set clipboard=unnamedplusve set clipboard=unnamedişe, use gvim veya vimx (gerek vim-X11): Bunlar ile derlenmektedir +xterm_clipboard. İsterseniz içine koyabilirsiniz .bashrcdiğer adına vimsahip vimx:
if [ -e /usr/bin/vimx ]; then
alias vim='/usr/bin/vimx'; # vim with +xterm_clipboard
fi
Sağladığınız +xterm_clipboardbilgilerde vim'inizin olup olmadığını öğrenebilirsiniz vim --version.
:set pasteve bizansın varsayılan davranışının neden <leader><leader> * yuzaktan arzu edildiğini biliyor mu? Çok kararlı gelmemek için, bunun vim felsefesinin ne yansıttığını ya da sadece tarihsel bir talihsizlik olup olmadığını gerçekten merak ediyorum.
inoremap <S-Insert> <F12><C-r>+<F12>(Yapıştırım olarak F12 kullanıyorum). Teşekkürler.
Vim'i sistem panosunu ( :set clipboard=unnamed) kullanacak şekilde ayarlarsanız, Vim'de kopyaladığınız herhangi bir metin Shift+ kullanılarak yapıştırılabilir Insert. Shift+ Insertbasitçe işletim sistemi genelinde bir yapıştırma tuş kombinasyonudur ( Ctrl+ Insertkarşılık gelen 'kopyadır').
ppanoya metni yapıştırmak?
Shift + InsertMetni yapıştırmak için kullanmadan önce ekleme modunda olmamız gerekir.
Ekleme moduna yapıştırmak için farenin orta düğmesini de kullanabilirsiniz (yalnızca Linux).
Moda aşağıdaki yollarla girebilirsiniz -- INSERT (past) --:
veya
:set pasteve ekleme moduna girme ( :set nopastedevre dışı bırakmak için)-- INSERT (past) --modda bir kez sistem yapıştırma işlevinizi kullanın (örneğin CtrlShiftvLinux'ta, CmdvMac OS'de).
Ssh üzerinde vim kullanırken bu strateji çok kullanışlıdır.
Evet. Windows Ctrl+ Vve Linux'ta her iki fare düğmesine de neredeyse aynı anda basmak.
Windows'da benim _vimrc bu satır muhtemelen yapar düşünüyorum:
source $VIMRUNTIME/mswin.vim
Linux'ta bunu nasıl yaptığımı hatırlamıyorum. Muhtemelen varsayılan .vimrc dosyasından bazı satırları sildim.
Bu durumda özel bir harita uygun görünüyor. Yankılanan öğeleri ekleme modunda yapıştırmak için kullandığım şey budur:
inoremap <Leader>p <ESC>pa
Benim Leaderanahtar burada \; bu \p, ekleme modunda vurmanın daha önce çekilmiş öğeleri / satırları yapıştıracağı anlamına gelir .
Sadece harita ekleyin:
" ~/.vimrc
inoremap <c-p> <c-r>*
vim'i yeniden başlatın ve Crtl+pekleme modundayken, kopyalanan metin yapıştırılacaktır