Mac Terminal / iTerm'de vim için düzgün kaydırma?


13

Mac OSX'teki (Lion) bir terminal içinde düzgün kaydırma (fare kaydırma tekerleği veya macbook touchpad kullanarak) mümkün müdür? Ayrıca, bunu vim içinde yapabilir miyim?

Düzgün kaydırmanın kodun okunmasına yardımcı olduğunu buluyorum, sürekli piksel-piksel kaydırmanın aksine sadece ayrı satırlarda kaydırma yapabildiğiniz zaman hoşuma gitmiyor.

Teşekkürler


Bir Vim uygulamasını terminal oturumunda kullanmak yerine daha iyi bir deneyim yaşayabilirsiniz ( code.google.com/p/macvim , macvim.org/OSX ). Bir terminal içinde kullanmanız için bir neden var mı?
Chris Page

3
MacVim de düzgün kaydırma sağlamaz.
romainl

Merhaba @romainl. Tampon boyutu (windows boyutu) gerçekten büyükse (yani tüm dosyanın boyutu) vim nasıl davranıyor acaba. GO bunu test et. Sonra düzgün bir kaydırma GTK (veya QT) widget'ı içine bir vim tamponu yerleştirebilir ve widget'ın içindeki tüm vim tamponunu sorunsuz bir şekilde kaydırabiliriz. Bu, imlecin modern editörlerde olduğu gibi kolayca gizlenebilmesinin ek bir yararı olacaktır. Kullanıcı imleci hareket ettirdiğinde, widget (gVim'in kullandığı API'yi kullanarak) bilir ve kaydırma konumunu buna göre yeniden verir.
trusktr

(devam.) Pencere bölme, vim'in tam dosya uzunluğu çıktısını yeni bir widget'a kopyalayarak ve widget'ı düzgün bir şekilde uygun konuma kaydırarak bile gerçekleştirilebilir. Bu, güzel bir widget araç seti hakkında bazı basit aritmetik ve iyi bilgi gerektirir. Pencere bölme (yatay ve dikey) ve kaydırma ve yeniden boyutlandırma widget'ları olacaktır. Geri kalanlar bir parça kek (menüler, sekmeler, gVim ve qVim'in zaten yaptığı şeyler) olacaktır.
trusktr

(devam) Bu vim'in performansını da büyük ölçüde arttırma potansiyeline sahiptir. Şunu düşünün: Konsol vim veya g / qvim pencerelerini (şu anda) her kaydırdığınızda, vim ekrandaki hemen hemen her karakteri yeniden yazmak zorundadır. Vim arabelleği tam uzunluktaysa ve kaydırma düzgün kaydırmalı bir widget tarafından bağımsız olarak gerçekleştirildiyse, imleci yeni bir satıra (veya daha iyisi, tek bir satıra taşıdığınızda) aynı anda yalnızca bir satırın karakterini güncellemesi gerekir. karakteri bir karakter ileri veya geri hareket ettirdiğinizde). Bu vim için BÜYÜK bir performans avantajı olurdu!
trusktr

Yanıtlar:


5

İterm2 kullanıyorum ve aşağıdaki seçeneklerle terminalde vim 7.3 kullanarak çok güzel bir işlevsellik buluyorum:

set mouse=niv #or set mouse=a
set clipboard=unnamed

EDIT: set mouse = a da diğer öneri ile belirtildiği gibi kullanmak harika görünüyor.

Bunun yaptığı şey, metin seçerken sizi otomatik olarak normal moddan görsel moda veya ekleme modundan - (insert) VISUAL - diyen moda geçirmektir. Bu, satır modları veya göreli satır numaralarınız olduğunda, devam edip muhtemelen kopyalamak istemediğiniz sayıları kopyalayacağından, bu modları ayarlamamaya göre kullanışlı bir avantaja sahiptir. Sizi fare etkin görsel moda bu şekilde düşürdüğünde, yerel terminalin seçimi (bastırılmakta olan) yerine görsel mod seçimini kontrol etmeye çalıştığı için bu satır numaralarını kopyalamaktan kaçınır. Kaydırma, seçimi başlattığınız yerden ekranın alt kısmına kadar her şeyi seçtiğini akılda tutarak, tümüyle iyi çalışır. Vim'de ctrl + c / ctrl + v'yi unutun - vim yankypasta komutlarını kullanın (y, yy, p,

http://vim.wikia.com/wiki/Mac_OS_X_clipboard_sharing#Comments

Yine, iterm2 - osx'un dahili terminali çöp. Sığırlarınızı satır satır kaydırma ile gerçekten görmüyorum, çünkü bunun vim gerektiği gibi nasıl çalıştığından memnunum, ama belki de diğer insanların neden video oyunları oynamasını izleyemediğime benzer nedenlerden dolayı hareket hastalığı veya floresan ışık ve CRT monitörün neden migren noktasına kadar insanların kafalarıyla titremesini karıştırır. Beyninizdeki yenileme hızını ayarlamayı deneyin, tapınağınıza yeterince sert basarsanız ve dönerseniz düğmeyi hissedebilirsiniz.


0

Seninle gerçekten aynı fikirde değilim ama burada istediğini ve daha fazlasını yapan bir Terminal.app eklentisi var.

Eklemeniz gerekebilir

set mouse=a

.vimrc'nize. Daha :help mousefazla bilgi için bakınız .


Ne yazık ki eklenti SIMBL gerektiriyor ki bu Lion
Eddy

Bilmiyordum çünkü Lion'um yok. MouseTerm, Terminal.app'a şimdiye kadar duyduğum fare kaydırma eklemenin tek yoludur. Görünüşe göre bazı insanlar Lion'da SIMBL kullanımında sınırlı bir başarı bildirdi , denediniz mi? Ayrıca iTerm2'nin "fare raporlaması" ve kaydırma sağladığını görüyorum ama muhtemelen satır satır kaydırılacak. Bir yan not Ben pek kaydırma (yukarı / aşağı / j / k) artık gibi: Ben bulmak /, ?, fF, tTve <C-f>/ <C-b>çok daha yararlı.
romainl

Bunların fare tekerleği kaydırmayı işe yaradığını unutmayın, ancak birincil sorunu ele almıyorlar: “Sürekli piksel piksel kaydırmanın aksine yalnızca ayrı satırlarda kaydırma yapabildiğiniz zaman hoşlanmıyorum.”
Chris Page

Bu tür kaydırma (satır satır) Vim'de sabit kodlanmıştır. Neyse ki etrafında bir yolu yok. Eğer gerçekten buna ihtiyaç duyarsa, vim-dev üzerinde dikkatle ifade edilen argümanlarla ısrar etmeli veya bir yama sağlamalıdır.
romainl

Düzgün kaydırma istememin nedeni, satırları ayrı ayrı kaydırırken yerimi kaybetme eğilimimdir. Açıklaması zor. Belki herkesi etkilemez ama benim için yapar
Eddy
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.