Почему Windows иногда «копирует в буфер обмена», когда я нажимаю клавишу удаления? [Дубликат]

45

Возможный дубликат:
Как я могу предотвратить смещение Shift-Delete в Windows?

Я программист, поэтому я провожу много времени в текстовом редакторе. По какой-то причине, примерно в 25% случаев, когда я нажимаю Deleteклавишу, Windows копирует мой выбор в буфер обмена непосредственно перед удалением.

Это разочаровывает, потому что я выделю некоторый код, который я хочу переместить, нажмите Ctrl+, Xа затем выделю оставшееся свободное место и нажмите Delete. Через мгновение я нажму «вставить», но вместо того, чтобы посмотреть, что я скопировал, я получу пустую строку (содержание того, что я удалил).

Джереми
источник
Для тех, кто видел мой оригинальный пост - я очистил заголовок и описание, чтобы удалить ненужную информацию.
Джереми
2
В качестве примечания, установка ClipX означает, что вам не нужно беспокоиться о потере данных в буфере обмена (недостаток: без этого не обойтись сейчас!)
Симон
После того, как Оливер указал на причину проблемы, я искал постоянное решение. Я разместил свои выводы как «Ответ» ниже.
Джереми
Если вы используете Visual Studio, есть один выход: используйте Ctrl + Shift + V для просмотра истории буфера обмена.
Лоран Кувиду
Если вы теряете то, что было в буфере буфера обмена, удобный для загрузки небольшой инструмент (при условии, что вы работаете в Windows) - это инструмент под названием ClipX ( bluemars.org/clipx )
Рой Рико,

Ответы:

78

Решения этой проблемы могут быть найдены в следующем вопросе:
Как мне переназначить Shift + Del в Windows, чтобы означать Удалить вместо Вырезать? или в собственном ответе Джереми .

Скорее всего, вы нажимаете Shift+ Del.

Вы все еще не Shiftсделали свой выбор. Shift+ Del- это комбинация клавиш для Cut (как и Ctrl+ X).

Der Hochstapler
источник
7
Это может быть очень неприятно при очистке пустого пространства перед вставкой этого специального кода из буфера обмена. Случается со мной все время, сводит меня с ума.
Der Hochstapler
9
Большое вам спасибо - вы только что решили мою проблему! Я немного смущен тем, что не знал об этой комбинации клавиш. Я всегда знал о shift + insert, но почему-то никогда не слышал о shift + del (хотя и имеет смысл). Еще раз спасибо!
Джереми
8
Просто некоторая дополнительная информация, это комбинация клавиш для левшей, поэтому они могут использовать ее, удерживая мышь (как правши могут с помощью Ctrl + C и т. Д.)
Хольгер
3
@ Джереми: я видел это в Visual Studio - я просто захожу на страницу сочетаний клавиш, нахожу запись Shift + Delete и вместо того, чтобы сопоставить ее с Cut, я сопоставляю ее с LineDelete (или как он там назывался). Тогда это действительно делает что-то полезное. :)
Мердад
2
@ Холгер: нашел что-то . Кажется, они пришли из IBM CUA . Не уверен, что их целью было облегчить доступ для левшей. Но это все же работает :)
Der Hochstapler
7

* РЕШЕНИЕ *

После того, как Оливер указал, что shift+ delete- это сочетание клавиш для Cut (как и Ctrl+ x), я начал искать способ отключить эту «функцию».

Единственное решение, которое я нашел, это использовать AutoHotKey (бесплатно). Вот некоторые основные инструкции по настройке для всех, кто заинтересован:

Во-первых, установите AutoHotKey , запустите его и дайте ему возможность создать (и открыть) скрипт примера / по умолчанию AutoHotkey.ahk, когда он предложит вам. Добавьте следующее в скрипт:

+Delete::
    KeyWait, Shift
    Send, {Delete}
    return

Я не уверен, но вам, возможно, придется «перезагрузить» скрипт, прежде чем он начнет работать (я перезагрузил перед тестированием). Для перезагрузки выведите приложение AutoHotKey на передний план и нажмите Ctrl+ R(или выберите Файл -> Обновить сценарий).

Если вы довольны результатами, вы, возможно, захотите настроить автоматический запуск AutoHotKey при запуске. Это можно сделать, выбрав файл AutoHotkey.ahk (в папке «Мои документы»), а затем перейдя в папку автозагрузки (C: \ Users \% username% \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup ) и нажав «Вставить ярлык» в меню «Редактировать» (нажмите Alt+, Eесли вы не видите строку меню).

В тестировании это исправление отлично работало для меня в Windows 7. Спасибо Оливеру за определение основной проблемы! :-)

Джереми
источник
8
Знаете, вы могли бы просто научиться правильно печатать; P
Svish
+1 Свиш. И нет причин цитировать «фичу». Использование ctrl-c для копирования в одних программах (использующих окна) и отмены задач в других (запущенных в окне консоли) - это «особенность». Но использование разных комбинаций клавиш для разных задач - это особенность .
Эндрю Дж. Брем
Кроме того, что вы делаете на машинах, на которых не установлен AutoHotKey, будь то в библиотеке или в веб-кафе?
krlmlr
Там на самом деле был такой вопрос . user946850 нашел его. Приветствия.
Der Hochstapler
2

Другая возможность - это функция доступности Sticky Key в Windows 7, поэтому вы нажимали Shiftклавишу до и, когда вы нажимаете Del, Sticky Key объединяет их в Shift+ Del, что является еще одним ярлыком для Cut(в буфер).

Я нашел следующую статью полезной в выяснении настройки - Застрял клавиши Shift - Windows 7 64 бит .

artdanil
источник
0

Это происходит на обеих ваших коробках Win7? Если бы он был только один, я бы подумал, что, возможно, проблема с вашей клавиатурой, поскольку клавиши C и X расположены рядом. Возможно, клавиша C частично залипает и слегка вдавливается при нажатии клавиши X. Единственный раз, когда я видел это, это когда мой палец не идет к ключу, и мой мозг тоже говорит об этом. :) У меня есть полдюжины машин Win7, и я никогда не видел, чтобы это произошло, за исключением случаев, когда я мог приписать это либо клавиатуре, либо толстому пальцу.

BBlake
источник
Это было странно для меня - это происходило на двух компьютерах. Я бы попробовал поменять местами клавиатуру, если бы это был только один компьютер. Оказывается, Оливер был прав. Возможно, мне придется найти инструмент, который позволит мне отключить комбинацию клавиш shift + del. Спасибо, что поделились своими мыслями. :-)
Джереми
0

Поскольку основная причина связана с сочетанием клавиш Shift+ Del, другое решение будет использовать Backspaceдля удаления выделенного текста, а не Del.

Несмотря на то, Delи Backspaceобычно выполняют различные действия (по крайней мере , на ПК), они оба могут быть использованы для удаления выбора. И нет риска перезаписать ваш буфер обмена, так как Shift+ Backspace- это то же самое, что и Backspace.

Lèse Majesté
источник