Ctrl + Backspace menyisipkan kotak kecil alih-alih menghapus

40

Ketika saya menekan Ctrl+ Backspace, kadang-kadang kotak kecil dimasukkan, alih-alih seluruh kata dihapus. Jika saya menyalin dan menempelkan karakter di sini, saya mendapatkan ini: ``. Tapi itu tidak terlihat seperti itu di kotak teks - hanya ada kotak putih polos dengan batas hitam 1px.

Masalahnya hanya terjadi di beberapa kotak teks; di tempat lain jalan pintas berfungsi seperti seharusnya.

  • Kotak pencarian menu Start: berfungsi
  • Notepad: tidak berfungsi

    kotak kecil yang dibuat dari Ctrl + Backspace di Notepad

  • Notepad2: berfungsi
  • Firefox: berfungsi

Saya menjalankan Windows 7 x64.

Rory O'Kane
sumber
1
Saya mendapatkan perilaku yang sama di notepad di WinXP.
djhowell
2
Saya juga mendapatkan perilaku ini ketika mengganti nama file di File Explorer pada Windows 7. Yaitu, ketika saya memilih file, tekan F2, pindahkan kursor ke akhir kata yang ingin saya hapus, dan coba Ctrl+ Backspace.
Rory O'Kane

Jawaban:

25

Anda dapat memperbaiki perilaku ini dengan mengganti Ctrl+ Backspacepintasan menggunakan AutoHotkey . Simpan kode berikut dalam file teks biasa dengan nama file dan ekstensi yang diberikan, kemudian luncurkan skrip dengan AutoHotkey:

FixCtrlBackspace.ahk

; how to write scripts: http://www.autohotkey.com/docs/

#IfWinActive ahk_class CabinetWClass ; File Explorer
    ^Backspace::
#IfWinActive ahk_class Notepad
    ^Backspace::
    Send ^+{Left}{Backspace}
#IfWinActive

; source and context: http://superuser.com/a/636973/124606

; relevant documentation links:
; writing hotkeys
; http://www.autohotkey.com/docs/Hotkeys.htm
; list of key codes (including Backspace)
; http://www.autohotkey.com/docs/KeyList.htm
; the #IfWinActive directive
; http://www.autohotkey.com/docs/commands/_IfWinActive.htm
; the Send command
; http://www.autohotkey.com/docs/commands/Send.htm

Anda mungkin lebih mudah mengunduh file skrip ini dari GitHub , daripada membuat sendiri file dan menempelkan isinya.

Untuk meluncurkan skrip ini secara otomatis saat startup, tambahkan pintasan ke skrip Startup di menu Start Anda, seperti yang dijelaskan dalam Cara Membuat Program Berjalan saat Startup di Komputer mana pun .

Ide dasar skrip adalah ini:

^Backspace:: Send ^+{Left}{Backspace}

Ini mengubah cara pintas Ctrl+ Backspacedi semua program sehingga setara dengan menekan Ctrl+ Shift+ , untuk memilih kata sebelumnya, dan kemudian Backspace, untuk menghapusnya.

Pemecahan masalah memilih dan menghapus ini, sementara lebih baik daripada mengetik kotak, rapuh. Lebih aman untuk tidak mengaktifkan pintasan ini di program di mana Ctrl+ Backspacesudah berfungsi. Itu sebabnya saya gunakan #IfWinActiveuntuk membatasi hotkey hanya untuk program yang saya tahu tidak mendukung jalan pintas itu.

Rory O'Kane
sumber
19

"Kotak" yang Anda lihat adalah apa yang dikenal sebagai karakter kontrol . Kotak ditampilkan karena, seperti yang Anda temukan, tidak semua program menangani ctrl + backspace untuk menghapus kata.

Karakter kontrol ini adalah salah satu dari 33 karakter "non-cetak" dalam skema pengkodean karakter ASCII 128 karakter .

Jared Harley
sumber
Hanya ingin menambahkan bahwa beberapa aplikasi menanganinya lebih buruk dan sebenarnya tidak menampilkan karakter kontrol. Anda dapat melihat ini ketika tidak ada yang terjadi ctrl+backspacedan menekan delete tampaknya tidak melakukan apa-apa. Saya pikir notepad untuk Vista melakukan ini.
Joshua
5
Karakter yang dimasukkan adalah 127 - karakter hapus.
1
Tautan ke ASCII char 127, karakter hapus , di Wikipedia
Rory O'Kane
Ini menjelaskan 'apa' yang jelas, tetapi bukan 'mengapa' :-(
mafu
14

Menemukan ini di blog MSDN ...

Beberapa orang di masa-masa awal kelompok Internet Explorer menggunakan editor Brief, yang menggunakan Ctrl + Backspace sebagai tombol pintas untuk menghapus kata sebelumnya, dan mereka sangat menyukainya sehingga salah satu dari mereka menambahkannya ke penangan autocomplete. Oleh karena itu, kontrol edit apa pun yang menggunakan SHAutoComplete akan mendapatkan hotkey Ctrl + Backspace rahasia ini.

Jadi sepertinya jika aplikasi tidak menggunakan SHAutoComplete, itu tidak akan mendukung fitur kecuali telah secara eksplisit ditambahkan oleh penulis aplikasi.

Hapus kontrol PS menghapus kata di depan kursor

djhowell
sumber
1
Juga pada artikel yang sama ini, membaca komentar menambahkan wawasan sedikit lebih: blogs.msdn.com/oldnewthing/archive/2007/10/11/…
heavyd
0

Tidak semua aplikasi menangani pintasan keyboard yang sama. Notepad tampaknya tidak menangani kombinasi tombol ini dan menanganinya dengan caranya sendiri.

Teman saya
sumber