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.