55

Я регулярно копирую и вставляю текст между электронными таблицами, электронными письмами, окнами браузера и т.д. Я не могу вспомнить ни одного момента, когда я хотел сохранить форматирование из исходного текста.

Я уже знаю о следующих обходных путях:

  • Используйте «Правка» → «Специальная вставка» → «Неформатированный текст».
  • Вставьте в Блокнот и скопируйте оттуда
  • Установите программу, которая берет на себя буфер обмена

То, что я хочу, это сказать Windows, чтобы сделать это по умолчанию.

Это возможно?

13 ответов13

29

Это довольно приличный компромисс: PureText.

PureText скриншот

Это может не быть прямым ответом на то, что вы спросили, но это может быть полезно кому-то еще с более общей версией вашего вопроса.

25

К сожалению нет. И я считаю, что это по замыслу.

Проблема в том, что буфер обмена Windows не должен хранить данные. По сути, это центр обмена информацией, в котором любое приложение может перечислить только что скопированные (или вырезанные) данные и предложить их для вставки любому приложению (включая себя). Буфер обмена содержит список форматов, в которых доступны данные, и, если приложение решит это сделать, это будут данные в некоторых из этих форматов.

Приложение, которое обрабатывает операцию вставки, затем имеет возможность выбрать формат данных, который лучше всего ему подходит. Некоторые приложения (например, «Блокнот») принимают только один конкретный формат (например, простой текст) и просто ничего не делают, если этот формат недоступен. Другие выбирают предпочтительный формат по умолчанию, но предоставляют пользовательский интерфейс для выбора среди альтернатив, которые могут быть понятны этому приложению.

В принципе, можно написать программу, которая контролирует буфер обмена на наличие нового контента и выравнивает любой нетекстовый контент до простого текста. Существует событие, доступное для уведомления такого монитора о новом контенте в буфере обмена. Тем не менее, я подозреваю, что реализация такой вещи сломает значительное количество программ, и, возможно, неожиданными способами.

Простой обходной путь в стандартной версии XP - использовать Блокнот для выравнивания данных, когда это необходимо, или использовать один из многих инструментов, которые улучшают буфер обмена путем реализации стека, представления его содержимого и т.д.

Если вы хотите попробовать создать инструмент самостоятельно, вы можете получить пользу от этого вопроса в SO и связанных с ним вопросах ....

12

По умолчанию сделать это невозможно, но с небольшим количеством хакеров мы можем обойти это.

Тебе понадобится:

  • PlainTextClipboard
  • AutoIT Script (вы можете использовать AutoHotKey, я просто не знаю этот язык сценариев)

Создайте скрипт AutoIt со следующим кодом:

$ptcPath = "C:\Program Files (x86)\Plain Text Clipboard\PlainTextClipboard.exe"
HotKeySet("^v", "PastePlainText")

While True ;Keep it running indefinitely.
WEnd
HotKeySet("^v") ;unregister the hotkey

Func PastePlainText()
    Run($ptcPath);
    Send(ClipGet())
EndFunc

Когда вы нажимаете Ctrl + V, это запускает программу PlainTextClipboard, а затем отправляет содержимое буфера обмена в текущее окно. К сожалению, он будет отправлять содержимое по одному символу за раз, так что это немного медленно. Это проблема, над которой я работаю, но она должна послужить разумным началом. Если есть какие-либо гуру AutoHotKey/AutoIT, не стесняйтесь сделать свою собственную версию этого скрипта. Я обновлю его, как только выясню, как решить проблему.

6

Я тоже продолжаю сталкиваться с этим. Помимо использования / написания программы для удаления дополнительного форматирования, я нашел самый простой способ вырезать форматирование - вставить текст в окна "Выполнить" (доступный через WIN + R) и заново скопировать его оттуда.

В итоге я делаю это очень быстро: CTRL + C, WIN + R, CTRL + V, SHIFT + HOME, CTRL + C, ALT + TAB, CTRL + V - теперь я не могу не задаться вопросом: делал это слишком долго ...

Работает только для однострочного текста.

5

Я не могу предоставить вам простое решение, но, как и другие, я предоставлю вам обходной путь:

Быстрый путь к первому варианту - использовать Ctrl + Alt + v, чтобы открыть диалоговое окно « Специальная вставка » без использования мыши. Набрав U для перехода к записи текста Unformatted Unicode (или U U , чтобы добраться до не-Unicode версии) , а затем Enter сделает это за вас. Не идеально, но встроенный.

4

Прямой ответ. Нет.

В Windows нет контроля над стандартным буфером обмена. Это причина, по которой многие приложения предоставляют эту функцию путем предварительного захвата вставленного текста.

PureText, как уже упоминалось, это путь.

3

Это не функция Windows, а функция приложения, которое вы вставляете.

Для MS Word установите значение по умолчанию, выбрав Файл -> Параметры -> Дополнительно -> Вырезать, скопировать и вставить:

В качестве альтернативы, если вы хотите сохранить настройки по умолчанию, но время от времени вставлять неформатированный текст, вы можете использовать Ctrl+v, Ctrl, t. (Примечание: это НЕ Ctrl+t.)

Для Excel вы можете вставить неформатированный текст с помощью Ctrl+v, Ctrl, m.

3

При вставке в Word (возможно, работает и в других приложениях Office) вы можете использовать Ctrl+Alt+V, а затем просто стрелкой вниз перейти к Unformatted Text или Unformatted Unicode Text и нажмите Enter. Это то же самое, что в меню «Специальная вставка», но намного быстрее :)

3

Используя такое приложение, как ClipMate, которое является менеджером буфера обмена (и коммерческим приложением), вы можете одновременно нажимать клавиши Win + W, чтобы очистить форматирование всего, что в данный момент находится в буфере обмена, и сделать его простым текстом.

2

В Windows в большинстве приложений Microsoft Office самый быстрый способ - нажать Ctrl + Alt + V а когда диалоговое окно появится, нажмите U затем Enter . Это выбирает параметр «Неформатированный текст» в диалоговом окне.

2

Проверив annoyances.org и еще несколько мест, я обнаружил, что единодушное мнение о том, что в поведении буфера обмена Windows нет никаких изменений в реестре. Я нашел другой бесплатный инструмент (ArsClip), который может делать то, что вы ищете.

1

Я разделяю вашу проблему. Разочаровывает, не так ли?

Я использую [это руководство] [1] для подготовки макроса Visual Basic и определения сочетания клавиш.

[1]: https://web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom/msoffice/?p=264

-> Это также было моим предпочтительным решением. Мой VBA Макро это:

Sub PastePlainText()
    Selection.PasteAndFormat wdFormatPlainText
End Sub

Я прикрепил его к сочетанию клавиш Ctrl+Alt+V. Он отлично работает во всех версиях Word/Office, которые я использую уже более 10 лет.

1

Мне нравится ClipX - он дает вам несколько буферов обмена, и если вы вставляете текст с помощью ClipX, он выровняется в обычный текст.

Таким образом, вы можете копировать как обычно, но если вы хотите вставить обычный текст, вы нажимаете Ctrl-Shift-V вместо Ctrl-V, а затем выбираете первый элемент, чтобы вставить его обычным способом. Это бесплатно, и это система в целом, так что это примерно 75% или больше от того, что вы хотите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .