Notepad ++: kursor melewati ujung garis / ruang virtual?


11

TL; DR - Bagaimana saya bisa mengaktifkan ruang virtual untuk memindahkan kursor melewati akhir baris teks?

Versi panjang - Di Notepad ++, ketika mencoba memilih (menggunakan mouse) satu baris panjang teks yang memanjang melewati tepi kanan jendela, menyebabkannya menggulir secara horizontal, mouse saya kadang-kadang akan sedikit naik atau turun cukup untuk menggerakkan kursor ke garis yang berdekatan (biasanya jauh lebih pendek), menyebabkan kursor untuk kembali ke kiri di mana garis yang berdekatan berakhir; yang pada gilirannya menggulirkan jendela secara horizontal kembali ke kiri, membuatnya sulit untuk dengan cepat menyesuaikan dan selesai menyeret keluar pilihan saya.

Beberapa (walaupun sangat sedikit) editor teks memiliki opsi untuk "ruang virtual", atau melewati EOL, untuk membuatnya lebih mudah untuk mouse / panah di sekitar tanpa dibatasi pada teks / spasi yang ada.

Bagaimana saya bisa mewujudkannya di Notepad ++ (tanpa meretas sumbernya sendiri)?


1
mulai dari baris, tahan SHIFT + END, sudahkah seluruh baris dipilih? Saya tahu itu tidak sama dengan apa yang Anda inginkan, tetapi itulah yang saya lakukan.
Rob

1
Bukan apa yang Anda minta, tetapi masalahnya akan hilang dengan pembungkus garis.
Eroen

@ Rob: Ini umumnya masalah ketika saya mencoba untuk memilih potongan panjang tertentu dari baris kode yang sangat panjang, tetapi baris itu bercampur dengan baris yang jauh lebih pendek. Saya juga dapat menggunakan SHIFT + CTRL + RIGHTARROW untuk dengan cepat memilih ke kanan dari titik awal saya satu kata pada suatu waktu, Notepad ++ cukup bagus dalam mendeteksi karakter pemecah kata seperti periode, tanda kurung, dll. Ketika tidak ada spasi sebenarnya yang memisahkan kata-kata (seperti dalam referensi objek panjang) misalnya (javascript):someObjectName.subObject.property['index'](parameter)
acatalept

@ Eroen: senang Anda menyarankan ini, saya tidak menggunakan kata-bungkus dalam N ++ untuk waktu yang lama, karena digunakan untuk membawa program berlutut dengan file besar ... tapi itu benar-benar bekerja dengan sangat baik bahkan untuk 20k saya yang lebih besar file baris, dan bahkan baris indentasi pada baris yang dibungkus;)
acatalept

Jawaban:


14

Semacam hack (mengirimkan pesan jendela langsung ke kontrol edit Scintilla saat startup), tetapi berfungsi dengan baik:

  1. Instal plugin NppExec

  2. Pergi ke Plugins -> NppExec -> Execute

  3. Masukkan kode berikut:

    // 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. Klik tombol Simpan di bagian bawah, dan beri nama skrip

  5. Sekarang pergi ke Plugins -> NppExec -> Advanced Options

  6. Di sebelah kanan, di bawah "Jalankan skrip ini saat Notepad ++ dimulai", pilih nama skrip yang baru saja Anda simpan

  7. Klik OK, tutup / buka kembali Notepad ++, dan nikmati;)


di mana kode pesan seperti 2596didokumentasikan untuk perintah scintilla lainnya? menyodok Scintilla.h saja? saat ini di tortoisesvn.googlecode.com/svn/trunk/ext/scintilla/include/… ?
n611x007

Apa yang ada 0di dalam SCI_SENDMSG 2596 3 0?
n611x007

@naxa: lihat dokumentasi Scintilla untuk kode pesan, misalnya scintilla.org/ScintillaDoc.html#SCI_SETVIRTUALSPACEOPTIONS (saya yakin parameter ke-3 tidak digunakan untuk sebagian besar dari ini, tetapi harus ditetapkan ke 0 daripada dihilangkan)
acatalept

"Semacam hack" - hack berarti mengakses sesuatu yang seharusnya tidak dilakukan oleh perangkat lunak. Ini terlihat seperti fitur bagi saya.
Natalie Adams

@Nathan: semantik itu menyenangkan;) Pada dasarnya saya maksudkan bahwa menggunakan plugin NppExec untuk mengirim pesan jendela langsung ke kontrol adalah semacam peretasan, bukan sesuatu yang dirancang khusus untuk dilakukan oleh Notepad ++ (selain menyediakan kerangka kerja plugin untuk melumasi roda)
acatalept

0

Tanpa hak admin, instal NppExec dengan mengunduh dll dan instal ke direktori / folder npp. Tutup / buka kembali npp.

Sunting (+2 tahun): Saya tidak tahu apakah ini telah berubah, tetapi kita sekarang (jika tidak awalnya) menempatkan folder NppExec ke dalam folder plugins npp - dengan dll dalam sub-folder NppExec.

Pastikan juga versi yang cocok (ingatkan diri Anda apakah Anda menggunakan 32bit atau 64), dan jika Anda memiliki versi terbaru (2019), Anda mungkin memerlukan versi _PA dari NppExec.

Mengapa saya tidak dapat menginstal plugin NppExec untuk Notepad ++?


Sesuatu telah berubah di Notepad ++. Eksekusi sudah tidak ada lagi. Apakah ada koreksi untuk ini?
user215779
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.