Страницы

Поиск по вопросам

Показаны сообщения с ярлыком hotkeys. Показать все сообщения
Показаны сообщения с ярлыком hotkeys. Показать все сообщения

суббота, 15 февраля 2020 г.

Горячие клавиши Visual Studio

#c_sharp #wpf #hotkeys


Столкнулся с проблемой, что в проекте WPF неудобно работать на пол окна с редактором
XAML и пол окна с конструктором. Сделал отображение на весь экран, но теперь, чтобы
перейти с конструктора на редактор и обратно, нужно постоянно кликать мышью.

С редактора на конструктор можно перейти Shift + F7. 

Кто-нибудь знает горячую клавишу для обратного действия? Ctrl + Alt + 0 переводят
на код, а нужно именно на XAML.
    


Ответы

Ответ 1



Shift + F7 Делает то что нужно, т.е. работает как Toggle. Туда и обратно переключает.

пятница, 14 февраля 2020 г.

Обозначения специальных клавиш в Linux

#linux #hotkeys


После перехода с windows-систем крайне непривычно видеть обозначения клавиш с Ctrl,
Alt и других.

Например, в mc команда chown это C-x o -- поисле недолгих поисков понимаешь, что
это сочетание клавиш Ctrl-x o.

А что за сочетание такое M-? (Find file в mc) и как его набирать?

Или другой пример, из tmux:


  M-1 to M-5 Arrange panes in one of the five preset layouts:
  even-horizontal, even-vertical, main-horizontal, main-vertical, or
  tiled.


Вообще, какие обозначения приняты в linux для таких специальных клавиш, типа Ctrl,
Shift, Alt, Win?
    


Ответы

Ответ 1



наиболее старое упоминание таких сокращений нашёл в исходниках gnu emacs версии 18.59, которая вышла 25 лет назад. цитата из man/emacs.texi: You can use modifier keys such as @key{CTRL}, @key{META} and @key{SHIFT} with function keys. To represent these modifiers, prepend the strings @samp{C-}, @samp{M-} and @samp{S-} to the symbol name. но, конечно, такое сокращение широко употреблялось и ранее. сложно лишь найти достаточно аргументированное подтверждение этому. А что за сочетание такое M-? (Find file в mc) и как его набирать? это клавиша meta, которая может быть представлена разными способами. нынче это обычно клавиша с надписью alt. т.е., надо удерживать alt и нажать клавишу ?. но можно и более переносимым образом — через клавишу escape: нажать и отпустить её, а затем нажать клавишу ?.

среда, 25 декабря 2019 г.

Сочетания клавиш в консоли, ввод-вывод

#cpp #windows #input #io #hotkeys


Учу С++. Хочу разобраться, как работает ввод-вывод в консоли.
Уже понял, что если вводишь в cin слова через пробел/табуляцию, он считывает их через
этот данный разделитель и выводит в cout. К примеру, ввожу "hello man", - выводит "helloman".
Это нормально, все ясно.
Также я узнал, что CTRL+Z останавливает процесс и означает символ конца файлы при
считывании. Нажимаю ctrl+Z (перед этим не ввожу символы) и процесс завершается.

Вопрос 1: почему, если я ввожу, к примеру "hello ^Z" (^Z я именно ввел сочетанием
клавиш, а не вручную сначала ^, потом Z), то сначала в потоке вывода появляется hello,
а за ним ничего не появляется, только если нажму enter, выводится вопросительный знак
в квадратике! (что это вообще такое?)

Вопрос 2: Если потом cin считывает символы через разделители, почему тогда он не
считал сначала hello, потом ^Z и в соответствии с командой не завершил процесс, считав
символ конца файла, как его называют в книге Страуструп.
Объясните, пожалуйста.

int main() {


    string current;

    while(cin>>current){

        cout << current;    
    }
}

    


Ответы

Ответ 1



Это особенности работы cmd.exe. cmd.exe отправляет текст в поток ввода построчно, и Ctrl+Z закрывает поток ввода только если до него не были введены другие символы. В этом можно убедиться переписав программу следующим образом: #include #include int main() { std::string s; while (std::cin >> s) for (int b : s) std::cout << std::hex << b << ' '; } Если что-то было введено до ^Z, то он интерпретируется как \x1a (символ замены), и всё что введено в этой строке далее - игнорируется: > test.exe 1^Z23 4 31 1a 34 При этом по умолчанию std::istream не считает \1a разделителем слов. Если до ^Z ничего не вводить, то поток закрывается, а последующие символы в строке игнорируются: > test.exe 123 31 32 33 ^Z456 >

суббота, 14 декабря 2019 г.

Emacs. Можно ли переназначить “без последствий” часть клавиатурных сокращений?

#vim #emacs #hotkeys


Можно ли в Emacs переназначить часть операций с текстом/файлами под более привычные(удобные)
для себя комбинации клавиш, без конфликтов с другими командами? Или стоит изучить те
которые по умолчанию? Пробовал Vim, но там ІМНО не стоит изменять хоткеи по умолчанию,
да и там все довольно логично,да и много команд реализуются одной клавишей, так что
не увидел особой необходимости в замене.
    


Ответы

Ответ 1



Стандартные сочетания архаичны и загадочны, существует несколько подходов в основе. Хорошие примеры: Evil Mode (vim-аддиктам), Spacemacs, Ergo Emacs, Boon, fingers. Технической проблемы тут нет, это вопрос эргономики и управления сложностью конфигурации. Вот из Vim на EMACS можно перейти только благодаря Evil-mode, ценой громоздкого конфига, однако с божьей помощью можно отказаться от Evil-mode, сохранив при том модальность. К вопросу, HJKL по-умолчанию в EMACS выполняют несущественные функции (С-h дублируется ), следовательно, такое можно и перемапить. FBNP-навигацию же, естественную для EMACS, и C-x-... M-x-..., C-c-..., повсеместно используемое - проще оставить нетронутым: (use-package god-mode :bind ( ( "M-i" . god-local-mode ) ( "" . god-local-mode ) ( "C-j" . next-line ) ( "C-k" . previous-line ) ( "C-h" . backward-char ) ( "C-l" . forward-char ) ( "C-d C-f" . delete-forward-char ) ( "C-d C-b" . backward-delete-char-untabify ) ( "C-d C-e" . kill-line ) ( "C-d C-w" . delete-trailing-whitespace ) ( "C-d C-a" . delete-to-begin ) ) ) В стиле Vi, одну клавишу можно использовать для целого ряда действий. Например, удаление строки dd, до конца строки: de, до начала строки: da, вперёд: df, назад: db etc. См. также Hydras. Хороший стиль - повторные нажатия одной клавиши + модификатор: v - старт выделения слова, повторное v - expand-region (увеличить выделение), M-v - contract-region (уменьшить выделение), Shift-V - выделение строки, но и стандартный C-Space продолжает работать. Вариант простого конфига в этом духе Есть альтернативы god-mode, например Modalka.

Ответ 2



Попробовал различные варианты. IMHO стоит изучить клавиатурные комбинации установленные по умолчанию, т.к. и в справке и разной документации везде идут именно они. Как вариант можно назначать неиспользуюмые комбинации или клавиши под свои задачи. Ну, а насчет переназначения стандартных клавиатурных сокращений, то как писал в комментариях @avp, просто потом нужно переназначить и ту функцию, комбинацию которой переназначили другой функции. Например, хотим функцию undo включать по C-z. Смотрим чем занято C-z, нажимаем C-h k C-z: C-z runs the command suspend-frame, which is an interactive compiled Назначаем этой функции другую комбинацию.

Ответ 3



CUA-mode остальное как угодно.

пятница, 26 апреля 2019 г.

Горячие клавиши Visual Studio

Столкнулся с проблемой, что в проекте WPF неудобно работать на пол окна с редактором XAML и пол окна с конструктором. Сделал отображение на весь экран, но теперь, чтобы перейти с конструктора на редактор и обратно, нужно постоянно кликать мышью.
С редактора на конструктор можно перейти Shift + F7.
Кто-нибудь знает горячую клавишу для обратного действия? Ctrl + Alt + 0 переводят на код, а нужно именно на XAML.


Ответ

Shift + F7 Делает то что нужно, т.е. работает как Toggle. Туда и обратно переключает.

среда, 24 апреля 2019 г.

Обозначения специальных клавиш в Linux

После перехода с windows-систем крайне непривычно видеть обозначения клавиш с Ctrl, Alt и других.
Например, в mc команда chown это C-x o -- поисле недолгих поисков понимаешь, что это сочетание клавиш Ctrl-x o.
А что за сочетание такое M-? (Find file в mc) и как его набирать?
Или другой пример, из tmux
M-1 to M-5 Arrange panes in one of the five preset layouts: even-horizontal, even-vertical, main-horizontal, main-vertical, or tiled.
Вообще, какие обозначения приняты в linux для таких специальных клавиш, типа Ctrl, Shift, Alt, Win?


Ответ

наиболее старое упоминание таких сокращений нашёл в исходниках gnu emacs версии 18.59, которая вышла 25 лет назад. цитата из man/emacs.texi
You can use modifier keys such as @key{CTRL}, @key{META} and @key{SHIFT} with function keys. To represent these modifiers, prepend the strings @samp{C-}, @samp{M-} and @samp{S-} to the symbol name.
но, конечно, такое сокращение широко употреблялось и ранее. сложно лишь найти достаточно аргументированное подтверждение этому.

А что за сочетание такое M-? (Find file в mc) и как его набирать?
это клавиша meta, которая может быть представлена разными способами
нынче это обычно клавиша с надписью alt. т.е., надо удерживать alt и нажать клавишу ?
но можно и более переносимым образом — через клавишу escape: нажать и отпустить её, а затем нажать клавишу ?

четверг, 29 ноября 2018 г.

Сочетания клавиш в консоли, ввод-вывод

Учу С++. Хочу разобраться, как работает ввод-вывод в консоли. Уже понял, что если вводишь в cin слова через пробел/табуляцию, он считывает их через этот данный разделитель и выводит в cout. К примеру, ввожу "hello man", - выводит "helloman". Это нормально, все ясно. Также я узнал, что CTRL+Z останавливает процесс и означает символ конца файлы при считывании. Нажимаю ctrl+Z (перед этим не ввожу символы) и процесс завершается.
Вопрос 1: почему, если я ввожу, к примеру "hello ^Z" (^Z я именно ввел сочетанием клавиш, а не вручную сначала ^, потом Z), то сначала в потоке вывода появляется hello, а за ним ничего не появляется, только если нажму enter, выводится вопросительный знак в квадратике! (что это вообще такое?)
Вопрос 2: Если потом cin считывает символы через разделители, почему тогда он не считал сначала hello, потом ^Z и в соответствии с командой не завершил процесс, считав символ конца файла, как его называют в книге Страуструп. Объясните, пожалуйста.
int main() {
string current;
while(cin>>current){
cout << current; } }


Ответ

Это особенности работы cmd.exe
cmd.exe отправляет текст в поток ввода построчно, и Ctrl+Z закрывает поток ввода только если до него не были введены другие символы. В этом можно убедиться переписав программу следующим образом:
#include #include int main() { std::string s; while (std::cin >> s) for (int b : s) std::cout << std::hex << b << ' '; }
Если что-то было введено до ^Z, то он интерпретируется как \x1a (символ замены), и всё что введено в этой строке далее - игнорируется:
> test.exe 1^Z23 4 31 1a 34
При этом по умолчанию std::istream не считает \1a разделителем слов.
Если до ^Z ничего не вводить, то поток закрывается, а последующие символы в строке игнорируются:
> test.exe 123 31 32 33 ^Z456
>

среда, 24 октября 2018 г.

Emacs. Можно ли переназначить “без последствий” часть клавиатурных сокращений?

Можно ли в Emacs переназначить часть операций с текстом/файлами под более привычные(удобные) для себя комбинации клавиш, без конфликтов с другими командами? Или стоит изучить те которые по умолчанию? Пробовал Vim, но там ІМНО не стоит изменять хоткеи по умолчанию, да и там все довольно логично,да и много команд реализуются одной клавишей, так что не увидел особой необходимости в замене.


Ответ

Стандартные сочетания архаичны и загадочны, существует несколько подходов в основе. Хорошие примеры: Evil Mode (vim-аддиктам), Spacemacs, Ergo Emacs, Boon, fingers
Технической проблемы тут нет, это вопрос эргономики и управления сложностью конфигурации.
Вот из Vim на EMACS можно перейти только благодаря Evil-mode, ценой громоздкого конфига, однако с божьей помощью можно отказаться от Evil-mode, сохранив при том модальность. К вопросу, HJKL по-умолчанию в EMACS выполняют несущественные функции (С-h дублируется ), следовательно, такое можно и перемапить. FBNP-навигацию же, естественную для EMACS, и C-x-... M-x-..., C-c-..., повсеместно используемое - проще оставить нетронутым:
(use-package god-mode
:bind ( ( "M-i" . god-local-mode ) ( "" . god-local-mode ) ( "C-j" . next-line ) ( "C-k" . previous-line ) ( "C-h" . backward-char ) ( "C-l" . forward-char ) ( "C-d C-f" . delete-forward-char ) ( "C-d C-b" . backward-delete-char-untabify ) ( "C-d C-e" . kill-line ) ( "C-d C-w" . delete-trailing-whitespace ) ( "C-d C-a" . delete-to-begin ) ) )
В стиле Vi, одну клавишу можно использовать для целого ряда действий. Например, удаление строки dd, до конца строки: de, до начала строки: da, вперёд: df, назад: db etc. См. также Hydras.
Хороший стиль - повторные нажатия одной клавиши + модификатор: v - старт выделения слова, повторное v - expand-region (увеличить выделение), M-v - contract-region (уменьшить выделение), Shift-V - выделение строки, но и стандартный C-Space продолжает работать.
Вариант простого конфига в этом духе
Есть альтернативы god-mode, например Modalka