Когда я копирую что-то в буфер обмена и нажимаю Ctrl+ Vв Bash, ничего не происходит; Тем не менее, щелкнув правой кнопкой мыши и выбрав Вставить, сделает работу.
Почему? Есть ли какая-либо разумная проблема (я уверен, что есть) за этим поведением в Linux?
linux
bash
keyboard-shortcuts
copy-paste
Ясир Замани
источник
источник
Shift
-Insert
также работаетCtrl-Shift-V
, лично.Ответы:
Во времена физических терминалов буфер обмена в течение сеанса не существовал, лишь немногие программы поддерживали внутреннее копирование / вставку - часто под названием «буферы» или «кольца уничтожения» - и использовали различные нажатия клавиш. Например, оболочка bash использует CtrlKили CtrlU«убивать» (вырезать), CtrlY«дергать» (вставлять); это происходит от в Emacs редактора .
CtrlCпочти везде в Unix была клавиша «прерывание» , используемая для отмены текущей программы или операции. CtrlVКлюч часто означает «дословную вставку» - то есть, вставить следующий символ буквально без выполнения каких - либо соответствующих действий. Например, нормальный Escпереключается в режим в команду VI редакторе, но CtrlV, Escбудет вставлять
ESC
символ в документ.Использование CtrlCкопировать и CtrlVвставлять из буфера обмена всей сессии было введено Mac OS в 1983 году и Microsoft Windows 3.x в 1990 году. (Более ранние версии Windows (1.x и 2.x), а также IBM OS / 2 , поддерживается только ключи IBM CUACtrlIns для копирования и ShiftInsвставки; эти сочетания клавиш поддерживаются всеми версиями Windows.)
Когда GUI с поддержкой буфера обмена наконец достигли Unix, Ctrlнажатия клавиш уже использовались многими терминальными программами. Кроме того, графический интерфейс X имел несколько иные механизмы : «выборки» и «обрезки буферов». Даже сейчас вы можете выделять текст в одной программе и вставлять его с помощью средней кнопки мыши, без каких-либо явных действий копирования.
Короче говоря, к тому времени, когда были написаны Xterm и GNOME Terminal (я полагаю, вы используете последний), они CtrlV уже много лет имели совершенно другое значение и не могли быть изменены. Кроме того, альтернативный метод копирования текста - «выделение» - уже присутствовал в X11, поэтому явное действие копирования / вставки, вероятно, считалось не таким важным, как в Windows. Это означает, что нужно было выбирать разные сочетания клавиш - например, большинство современных терминальных программ, таких как GNOME Terminal, используют CtrlShiftCи CtrlShiftV. (Если вы используете Xterm, те же самые ярлыки можно добавить вручную, используя Xresource XTerm * vt100 * translations . Rxvt не имеет такой опции.)
(Большинство наборов инструментов X11 также поддерживают клавиши «копировать» и «вставить» CUA, которые не конфликтуют с терминальными программами. К сожалению, реализации довольно противоречивы - CtrlInsкопии в «буфер обмена» в большинстве программ (GTK, Qt4, но игнорируются Xaw), однако, ShiftInsвставляет из "первичного выбора" в большинстве программ GTK и Qt4, но из "буфера обмена" в Firefox и из устаревших теперь буферов среза в устаревшем Xaw.)
Все , что сказал, некоторые терминалы или консоли (в частности, для Windows 10 консоли) сделать поддерживают эти ключи. Поскольку консоль Windows всегда имела отдельный режим «пометить / выбрать», CtrlCтеперь она также имеет два значения в зависимости от контекста - в обычном режиме она отправляет прерывание, в режиме выбора она копирует в буфер обмена (так же, как Enterраньше).
Между тем, инструменты командной строки Windows никогда не использовались CtrlV для чего-либо, поэтому он должен был «вставлять», ничего не мешая. Однако сделать то же самое на Unix-подобных терминалах было бы более проблематично.
источник
<C-v>
наi
версию 3, но я не мог понять, почему .Используйте CtrlShiftVдля вставки.
Ctrl с другими символами обычно используется оболочка для специальных функций.
источник
bash
сам по себе. Если вы когда-либо находитесь за пределами графического интерфейса или используете другой термин-эмулятор, это, вероятно, не сработает. Не думайте, что эта команда переносима.Вот ваши общие настройки копирования и вставки с популярными терминалами:
gnome-терминал (самый популярный в Linux)
Копировать : CtrlShiftC
Вставить : CtrlShiftV
Примечание : Выбор для копирования и middle-clickвставки также работает, но он использует альтернативный буфер обмена.
PuTTY (самый популярный терминал в Windows)
Копирование : (выберите с помощью мыши, без взаимодействия с клавиатурой)
Paste : Right-click (или более надежно: shiftRight-click)
Примечание : приложения , которые принимают ввод мышей (как
vim
иlinks
) может украсть Right-click- shiftRight-clickвсегда будет работать в любом приложении.OSX Terminal
Copy : AppleC
Вставить : AppleV
Примечание. Приложения, которые управляют мышью (например,
vim
иlinks
), могут переопределять то, что означает выделение текста, и в этом случае копирование не будет работать так, как вы ожидаете. В этих случаях, удерживая нажатой Control, перетащите мышь, чтобы выбрать. Взаимодействие мыши с приложениями по умолчанию отключено в настройках вашего терминала, поэтому большинство людей даже не узнают об этом.источник
cmd.exe
популярнее, чем PuTTY на Windows? :-)cmd.exe
это не терминал SSH. Это очень верно.cmd.exe
(и это единственный способ, если вы не хотите открывать меню> редактировать> вставить) в режиме быстрого редактирования . В командной строке pre-win10 нет ярлыкаСуществует глубокая традиция, согласно которой Ctrlключ вместе с буквой генерирует управляющие символы ASCII, найденные путем вычитания 64 из значения ASCII буквы верхнего регистра. Этот расчет карты Ctrl- Aдо 1 и так далее. Например Ctrl- Iэто Tabи Ctrl- Jэто перевод строки.
Там нет подобной традиции Ctrl- Shift. Ctrl- Shift- Vне будут производить какой - либо конкретный характер.
Эмуляторы терминала должны поддерживать традицию, прозрачно проходя через Ctrlсоглашение, позволяя ему отображаться как ввод символов для программ, работающих через это окно терминала. Терминальные программы отображают управляющие клавиши на команды. Например, Bash использует Ctrl- Vв качестве команды, которая означает «принять следующий символ буквально». Это позволяет встраивать управляющий символ в командную строку. Если терминал крадет управляющие клавиши для собственного использования, такие команды становятся недоступными. Таким образом, перехват Ctrl- Vдля мета-функции не может быть и речи (по крайней мере, в конфигурации по умолчанию).
Однако, эмуляторы терминала свободны для перехвата Ctrl- Shift- Vкоторый не ожидается , для создания персонажа. Ctrl- Shift- Vне является стандартом; это вещь Gnome Terminal (которая может быть в некоторых других терминалах).
На рабочих столах Unix на основе X принято, что для копирования не требуется никаких команд. Вы просто выбираете текст. И средняя кнопка вставляет этот текст в другом месте. Вы обнаружите, что он работает в Xterm, Gnome Terminal и Firefox.
Ctrl- Vэто соглашение , Microsoft Windows, которая является имитацией Apple- Vот Macintosh.
источник
<kbd>
теги в будущих постах.Ctrl-A
есть1
. Как я могу попробовать это? Мой терминал Gnome ничего не делает, когда я нажимаюCtrl-A
.Для меня самый простой способ скопировать вставить в оболочке:
Выберите нужный код, а затем вставьте его, нажав mouse-middle-key
источник
xdotool click 2
для эмуляции нажатия третьей кнопки для вас. Затем в любой среде оконного менеджера / рабочего стола вы можете привязать этот скрипт к клавише - скажемmod
i
(для вставки) или к любым комбинациям клавиш, которые у вас могут быть доступны (или к тому, что может означать мод - что на самом деле зависит от того, где вы его связываете)Мы можем использовать кнопку вставки клавиатуры для копирования и вставки (в старых клавиатурах она может отсутствовать)
Копировать : CtrlInsert
Вставить :CtrlShiftInsert
источник
Вы также можете использовать среднюю кнопку мыши и, если вам лень, и выбрать команду из текстового документа, сценария, веб-страницы или форума. Как только вы выбрали нужную команду, просто перейдите к своему терминалу и нажмите среднюю кнопку мыши. Я использую этот метод, поскольку я использую Puppy Linux, который, кажется, не поддерживает нормальное поведение щелчка правой кнопкой мыши и вставки. это происходит в окне обработчика файлов, но не в окне терминала. не знаю почему, но я тихо доволен, я узнал о методе средней кнопки, очень удобно! ;-)
источник