Vi / Vim'deki tüm metni nasıl seçerim?


193

Config dosyalarını düzenlemek için VI aracını kullanma.

Bir dosyadaki tüm metni nasıl seçebilirim (yaklaşık 1000 satır), kopyalayıp sonra Google Dokümanlar'a nasıl yapıştırabilirim?

Yanıtlar:


158

En basit ve en hızlı yol kullanmaktır: : % y +sonra Google Dokümanlar'a (veya her yere) gidin ve yapıştırın. Açıklama:

  • % tüm satırlarda çalışmak üzere bir sonraki komutu vermek
  • y  bu çizgileri ayırmak
  • +  sistem panosuna kopyalamak için

Başka bir yol ise g g " + y G, muhtemelen yukarıdakilerin daha hızlı ve daha kolay olduğunu kabul edersiniz.


10
@Tuxmentat her bir anahtar ne yaptığını açıklayınız olabilir:%y+
— Jas

10
Bu cevap, her bir tuşun her iki dizi için ne yaptığını açıklarsa daha iyi olurdu.
— AsksAnyway

6
En iyi tahminim: ':' bir "ex mode" komutu kullandığımız anlamına geliyor (bence). Her neyse, bu bir emirdir. '%', tüm dosyayı belirten özel bir komut satırı aralığı belirtecidir . 'y' her şeyi alır ve '+' pano kaydını belirtir . : <komut> yardım bu bana yardımcı oldu.
— Hawkeye Parker

11
yanlış bir şey yapıyor olmalıyım. yazın :%y+ve E488: Trailing characters
— alıyorum

25
"E850: Geçersiz kayıt defteri adı" alıyorum. İkinci yöntem kopyalamak için iyi çalıştı, ancak Ubuntu 16.04'teki sistem panosuna ulaşamadı (benim için en azından --- bir şeyleri etkileyebilecek bir .vimrc'im var).
— EntangledLoops

95

Verilen cevapların çoğu, aramadığım seçimi de yank ediyor.

ggVGBu amaçla kullanıyorum (normal modda çalıştırılması gerekiyor). Bu komut yalnızca belgenin içindeki metni seçer.

Hatta Ctrl+Abu amaç için yeniden başladım, çünkü kısayol ile bir tamsayı artırmaya ihtiyacım yok (varsayılan Ctrl+Aharita).

Sadece şunu içine ekle .vimrc:

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

İlk <esc>önce, kullanıcının normal modda olduğundan emin olmak için vardır.


2
Tam olarak aradığım şeydi ve Ctrl + A'nın varsayılan olarak vim'de meşgul olmadığını görmek güzel. Umarım hiçbir yan etkisi yoktur.
— Nikos Alexandris

2
Kişisel olarak kullanıyorum ggVG, ancak gg0vG$'normal' Ctrl + A işlemini daha yakından çoğalttığından daha uygun olabilir.
— Sheharyar

39

Sen kullanabilirsiniz cat fileve daha sonra çıkışı seçmek ve kopyalayıp tarayıcınıza yapıştırın gerekiyorsa yapıştırın.

Vi için bu, tüm metni nasıl seçip yeni bir dosyaya yazabilmenizdir:

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

Teoride bunun hem Linux hem de Windows üzerinde çalışması gerekiyor - Mac'te denedim ama işe yaramadı.


1
Web tarayıcısına yapıştırmak cat fileiçin gitmek yoludur. shift vVi iç tampona yöntemi sadece kopyalar.
— Aleksandr Levchuk,

* kayıt defterini kullanan sistem panosunu kullanıyorsanız - ancak bu yalnızca X ile çalışır ve Windows'ta duydum - bu yüzden ssh kullanıyorsanız -X - vim'in bunu vim için destekleyip desteklemediğini kontrol etmek için -: set clipboard + = adsız

Bunu yeni bir dosya oluşturmadan yapmanın bir alternatifi var mı? Sunucuda canlı düzenlersek, geri dönüş yapabilmemiz için yedekleme kodunu yerel makinede tutmamız gerekir.
— NJInamdar

Kedi için +1 ve macun olarak seçin. Tabii ki, büyük dosyalar için işe yaramaz ve en kullanıcı dostu bir yöntem değildir. Ancak ekran görünüm penceresinin dışına çıkan küçük komut dosyalarını kopyalamak için yeterlidir.
— Arnis Juraga

16

GgVG KULLANIMI Testin başına gitmek için "gg" yazın Sonra VG yazın.



7

CentOS-7 ortamında Vim 7.4 kullanıyorum. Hangi metni seçtiğim için bana yardımcı oldu.

:%y

Sonra sadece ptam dosya istiyorum bir sonraki dosyada.

Veya

Cat komutunu kullanabilirsiniz.

cat copyfile > pastefile

Bu git repo'da başka faydalı komutlar da var.


3

Mac için pbcopy (pasteboard copy) kullanın:

cat file.txt | pbcopy

File.txt içeriği şimdi başka bir uygulamaya (örneğin tarayıcıya) yapıştırmak için panodadır.

Pano içeriğini pbpaste kullanarak bir dosyaya da yapıştırabilirsiniz:

pbpaste > file.txt

Bu özellikle vi'yi içermiyor olsa da, Mac'te aynı hedefi gerçekleştiriyor.


1

Linux masaüstü kullanıyorsanız, panoya xclip veya xsel kullanarak yükleyebilirsiniz. Bu boyutta bir şey için google docs'ta yükleme özelliğini kullanmak isteyebilirsiniz.


1

Başka bir yol olacaktır:

vKlavyenizdeki tuşuna basın ve VIM öğesini VISUAL konumuna getirin

Ardından aşağı kaydırarak tüm metni seçin

^+ INSERTkopyalamak için

SHIFT+ INSERTmetni Google Dokümanlar'da istediğiniz yere yapıştırmak için.




0

Aşağıdaki komutu kullanın.

cat <your file name>

Dosyanın içeriğini yansıtır. Şimdi seçin, kaydırın, kopyalayın, yapıştırın.
Oyun bitti

Ör .:

cat bobis.txt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.