Notepad ++: imleç satır sonu / sanal boşlukları geçiyor mu?


11

TL; DR - Sanal boşlukların imleci bir metin satırının sonuna doğru hareket ettirmesini nasıl sağlayabilirim?

Uzun sürüm - Notepad ++ uygulamasında, pencerenin sağ kenarından geçen ve yatay olarak kaydırılmasına neden olan uzun bir metin satırı seçmeye çalışırken (fareyi kullanarak), farem bazen imleci hareket ettirecek kadar hafif yukarı veya aşağı gidecektir bitişik (genellikle çok daha kısa) çizgiye götürür ve imlecin, bitişik çizginin bittiği yerde sola dönmesine neden olur; bu da pencereyi yatay olarak sola doğru kaydırır, böylece hızlı bir şekilde yeniden ayarlamayı ve seçimimi sürüklemeyi bitirmeyi zorlaştırır.

Bazı (çok az olsa da) metin editörleri, mevcut metin / boşlukla sınırlandırılmadan fareyi / oku daha kolay hale getirmek için "sanal boşluklar" veya EOL'yi geçerek imleç yapma seçeneğine sahiptir.

Bunu Notepad ++ ile nasıl yapabilirim (kaynağı kendim hacklemeden)?


1
satır başı, ÜSTKRKT + END tuşlarını basılı tutun, tüm satırı seçtiniz mi? Bunun istediğinle aynı olmadığını biliyorum, ama yaptığım da bu.
Rob

1
Ne sormak değil, ama sorun satır kaydırma ile gider.
Mart'ta Eroen

@Rob: Bu genellikle çok uzun bir kod satırının belirli bir uzun yığınını seçmeye çalıştığımda bir sorundur, ancak bu satır diğer çok daha kısa satırlarla karıştırılır. Ayrıca hızlı bir şekilde başlangıç ​​noktamdan bir seferde bir kelime sağa seçmek için ÜSTKRKT + CTRL + SAĞ tuşlarını kullanabilirim, Notepad ++, herhangi bir gerçek boşluk ayrılmadığında nokta, parantez vb. kelimeler (uzun nesne başvurusunda olduğu gibi) örn. (javascript):someObjectName.subObject.property['index'](parameter)
Mart'ta

@Eroen: bunu önerdiğinize sevindim, programı büyük dosyalarla dizlerine getirmek için kullandığımdan beri uzun süredir N ++ 'da kelime sarmayı kullanmadım ... ama aslında daha büyük 20k'im için bile çok güzel çalışıyor satır dosyaları ve hatta sarılmış satırlardaki satır girintileri;)
Mart'ta

Yanıtlar:


14

Bir tür saldırı (başlangıçta Scintilla düzenleme kontrolüne doğrudan bir pencere mesajı gönderir), ancak harika çalışır:

  1. NppExec eklentisini yükle

  2. Gidin Eklentiler -> NppExec -> Çalıştır

  3. Aşağıdaki kodu girin:

    // ensure console stays hidden
    NPP_CONSOLE 0
    
    // enable virtual spaces (cursor past end of line) outside column edit mode
    SCI_SENDMSG 2596 3 0
    
    // SCI_SENDMSG == send message to Scintilla edit control
    // 2596 == the message we're sending is SCI_SETVIRTUALSPACEOPTIONS
    // 3 == send the value (SCVS_RECTANGULARSELECTION | SCVS_USERACCESSIBLE)
    // the default value is 1 (just SCVS_RECTANGULARSELECTION) for
    //   virtual spaces in column select mode only
    // you can find these values by poking around the source code a bit, or
    // see http://www.scintilla.org/ScintillaDoc.html
    
  4. En alttaki Kaydet düğmesini tıklayın ve komut dosyasına bir ad verin

  5. Şimdi Eklentiler -> NppExec -> Gelişmiş Seçenekler'e gidin

  6. Sağda, "Notepad ++ başladığında bu komut dosyasını çalıştır" altında, az önce kaydettiğiniz komut dosyası adını seçin

  7. Tamam'ı tıklatın, Notepad ++ 'ı kapatın / yeniden açın ve keyfini çıkarın;)


mesaj kodları 2596diğer scintilla komutları için nerede belgelenir? sadece Scintilla.h alay? şu anda tortoisesvn.googlecode.com/svn/trunk/ext/scintilla/include/… adresinde misiniz?
n611x007

Nedir 0içinde SCI_SENDMSG 2596 3 0?
n611x007

@ naxa: mesaj kodları için Scintilla belgelerine bakın, örneğin scintilla.org/ScintillaDoc.html#SCI_SETVIRTUALSPACEOPTIONS (3. parametrenin bunların çoğu için kullanılmadığına inanıyorum, ancak atlanmış yerine 0'a ayarlanması gerekiyor)
acatalept

"Bir tür saldırı" - bir saldırı, yazılımın yapması gerekmeyen bir şeye erişmek anlamına gelir. Bu benim için bir özellik gibi görünüyor.
Natalie Adams

@Nathan: anlambilimsel eğlenceli;) Aslında, doğrudan kontrollere pencere mesajları göndermek için NppExec eklentisini kullanmanın bir tür hack olduğunu, Notepad ++'ın özel olarak tasarladığı bir şey değil (düşünceli bir şekilde yağlamak için bir eklenti çerçevesi sağlamanın yanı sıra) tekerlekler)
acatalept

0

Yönetici hakları olmadan, dll'yi indirerek ve npp eklentileri o / s dizin / klasörüne yükleyerek NppExec'i yükleyin. Npp.

Düzenleme (+2 yıl): Bunun değişip değişmediğini bilmiyorum ama şimdi (başlangıçta değilse) NppExec klasörünü npp'in eklentiler klasörüne - NppExec alt klasöründeki dll ile koyduk.

Ayrıca sürümlerin eşleştiğinden emin olun (32bit veya 64 olup olmadığını kendinize hatırlatın) ve yeni bir sürümünüz varsa (2019), NppExec'in _PA sürümüne ihtiyacınız olabilir.

Neden Notepad ++ için NppExec eklentisini yükleyemiyorum?


Notepad ++ uygulamasında bir şeyler değişti. Execute artık orada değil. Bu konuda düzeltmeler var mı?
user215779
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.