Saya perlu cara untuk menghapus indentasi terkemuka (tab dan spasi) dari data yang disalin ke clipboard dari Notepad ++.
Data dalam dokumen Notepad ++ itu sendiri harus tetap memiliki indentasi terkemuka ini dan data yang disalin ke clipboard tidak boleh.
Perilaku ini harus dimulai oleh CTRL + C sendiri dan hanya ketika saya di dalam Notepad ++.
Inilah yang terjadi di Notepad ++ ketika saya menandai teks secara teratur dengan mouse:
Itu yang seharusnya ada di clipboard setelah saya menandai teks secara teratur dan menyalinnya:
Catatan:
- Gambar hanya untuk menggambarkan kebutuhan saya dengan lebih baik - kode saya yang sebenarnya lebih panjang.
- Saya juga bertanya tentang ini di sini .
- Saya menanyakan hal ini karena saya tidak dapat menempelkan blok kode yang berlekuk ke dalam terminal Linux jika kode-kode ini menyertakan
cat
heredocuments (berkaitan dengan pemrosesan pembatas heredocument, sebuah cerita panjang).
windows-10
notepad++
clipboard
JohnDoea
sumber
sumber
:set paste
.cat
heredocs - itu adalah .Jawaban:
Pertimbangkan skrip AutoHotKey (AHK) berikut. Lihat Tutorial dan dokumentasi AutoHotkey untuk penjelasan lebih lanjut tentang skrip AutoHotkey.
Setelah menginstal AutoHotKey, tekan Ctrl+ Shift+ catau di xdalam Notepad ++ untuk menyalin (atau memotong) ke clipboard dengan garis yang dipangkas.
Catatan: Saya menggunakan Ctrl+ Shiftsehingga Anda masih bisa menggunakan salinan asli dan memotong dengan normal saja Ctrl. Jika Anda tidak menyukai perilaku ini, hapus saja
+
keduanya+^c::
dan+^v::
.Lihat komentar (dimulai dengan
;
) untuk penjelasan. Seperti halnya pengodean apa pun, lebih baik tinggalkan komentar untuk lebih memahami skrip ketika Anda kembali lagi nanti.sumber
ctrl+z
untuk mengambil kembali konten yang dihapus. Ini sedikit bermasalah. Saya mengerti sesuatu seperti kode berikut dapat digunakan?if !LangID := EN { return }
. Menambahkannya di awal skrip membawa kesalahan dan membungkus skrip dengan versi yang sama ditambahelse { return }
setelah penutupan tidak kesalahan tetapi tidak berhasil.TrimClipboard(){ ... }
di dalamif
pernyataan. Letakkanif
pernyataan di dalam fungsi, atau di sekitar perintahSend, ... TrimClipboard()
Cukup gunakan
Alt + Mouse dragging
atauAlt + Shift + Arrow keys
untuk memilih kolom, laluCtrl+C
untuk menyalin kolom.Lihat contoh ini: https://notepad-plus-plus.org/fr/features/column-mode-editing.html
Edit:
Kita juga dapat memilih seluruh kolom, atau bahkan lebih dari satu kolom, juga kita dapat memilih satu atau banyak baris.
Berikut ini cara mudah untuk melakukannya:
Klik kiri mouse di awal pilihan yang diinginkan.
Pergi ke lokasi di mana seleksi yang diinginkan harus berhenti
Pindahkan kursor ke lokasi kedua dan terakhir, dengan:
ALT
+SHIFT
danleft click
, secara bersamaan, untuk memilih kolom dan baris yang diinginkan.Semoga bantuan ini
sumber
Inilah solusi portable-ish menggunakan Java
Langkah pertama adalah, tentu saja, menginstal Java
Selanjutnya, rekatkan yang berikut ke dalam file yang bernama
Trimmer.java
di direktori pengguna Anda (C: \ Users \ your_name)Kemudian, buka prompt perintah dan ketik
Anda sekarang harus memiliki file Trimmer.class di folder yang sama. Anda dapat menghapus file Trimmer.java sekarang.
Pada titik ini, kami memiliki program yang akan menghapus semua spasi putih awal dan akhir dari setiap baris di clipboard, tetapi kami masih membutuhkan cara untuk menjalankannya dengan nyaman. Mari buat hotkey untuk itu!
Pertama, buat pintasan ke prompt perintah (klik kanan C: \ Windows \ System32 \ cmd.exe)
Kemudian, klik kanan pintasan ini dan pilih "Properti." Ada beberapa hal yang perlu kita lakukan di jendela ini. Di tab "Pintasan", harus ada opsi "Target" yang mengatakan sesuatu seperti
Ubah untuk mengatakan
Ini akan menyebabkan prompt perintah menjalankan program kami dan keluar ketika kami menggunakan pintasan ini.
Selanjutnya, klik kotak "Shortcut key" dan tekan tombol pintas yang Anda inginkan untuk memicu penggantian teks. Saya merekomendasikan Ctrl+ Shift+ Cuntuk kemudahan penggunaan!
Terakhir, ubah opsi "Jalankan" menjadi "Diminimalkan" karena kami tidak ingin jendela berkedip ke layar setiap kali kami menggunakan pintasan.
Setelah semua ini, Anda harus dapat menggunakan alur kerja berikut:
sumber
Mungkin saya melewatkan sesuatu tetapi semua jawaban lain sepertinya terlalu menyulitkan solusinya. Jika saya mengerti dengan benar semua yang ingin Anda lakukan adalah menghapus spasi putih terdepan (spasi atau tab) dan Anda memiliki data yang tersedia di Notepad ++
Dalam hal ini solusinya sederhana. Buka file Anda di
Notepad++ >> Search >> Replace... or Ctrl+H
Temukan apa :
^( *)[ ]|^\t*
Ganti dengan : biarkan kosong
Untuk menemukan semua ruang terdepan yang kami gunakan
^( *)[ ]
dan untuk menemukan semua tab terdepan, kami menggunakan^\t*
, dengan demikian, untuk menemukan semua ruang terdepan atau semua tab terdepan yang kami gunakan atau operator|
. Pastikan bahwa Ekspresi Reguler dipilih di jendela ganti.Seharusnya selesai agak cepat, bahkan jika itu file besar. Tutup Jendela Ganti dan cukup Pilih Semua (Ctrl + A) >> Salin (Ctrl + C)
sumber
Jawaban saya didasarkan pada jawaban oleh Steven yang saya tandai sebagai benar (namun saya punya beberapa masalah dengannya dan saya mencoba mengedit meskipun hasil edit saya ditolak).
Ini adalah kode yang paling cocok untuk saya:
Perbedaan dari kode asli oleh Steven:
Send, ^c
danSend, ^x
denganSend, ^{sc02e}
danSend, ^{sc02d}
, masing-masing. Ini mencegah bug penghapusan teks dalam mode Ibrani dan beberapa mode bahasa non-Inggris lainnya).sumber