Отображение Caps Lock для управления из Emacs в Windows

Вы можете использовать np.matrix вместо np.array для определения 2D матриц. Например:

np.matrix('1 2; 3 4')
np.matrix([[1, 2], [3, 4]])

Для преобразования массива в матрицу используйте np.asmatrix :

a = np.array([[1, 2], [3, 4]])
m = np.asmatrix(a)

Но, как упомянуто в комментариях hpaulj, учтите:

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

blockquote>

Так что неплохо бы привыкнуть к использованию массивов numpy. Посмотрите это руководство https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html

Для преобразования скаляров или 1D-массивов в 2D-массивы есть функция np.atleast_2d

np.atleast_2d(3.0)
array([[ 3.]])

np.atleast_2d([1, 2, 3])
array([[1, 2, 3]])

10
задан Community 23 May 2017 в 12:09
поделиться

4 ответа

Я знаю, что это не совсем ответ на ваш вопрос, но Трей Джексон в основном объяснил проблему. Для обнаружения одной клавиши управления требуется низкоуровневый перехват клавиатуры в Windows, который, я не думаю, реализует Emacs.

Один из способов (включая внешнюю программу, но не требующий прав администратора) - использовать AutoHotkey . Все, что вам нужно, это следующий двухстрочный сценарий:

CapsLock::Ctrl
LCtrl::Capslock

Вам нужно будет запускать этот сценарий всякий раз, когда открыт emacs, но, к счастью, Autohotkey - довольно низкопрофильное приложение (обычно занимает около нескольких сотен КБ в памяти). Вы можете, например, выполнить этот сценарий в вашем .emacs, чтобы ваш управляющий ключ и клавиша Capslock менялись местами при каждом открытии emacs.

9
ответ дан 3 December 2019 в 22:01
поделиться

I believe it doesn't work because Windows (or X) doesn't pass an actual event for [capslock] or [control] - it's a modifier key, like [shift]. Pressing a modifier key doesn't cause the application to get a keystroke, but if you press a modifier and a second (non-modifier) key, then you get the keystroke.

For example [a] and [A] are two different keys, one is the regular "a" and the other is essentially "shift-a". I'm sure you could set Windows up to have the "shift-a" actually send a "z" or something.

Because [capslock], [control], [shift], [meta] are all modifier keys, they don't generate key events in and of themselves for the applications.

In short, Emacs doesn't get a [control] key event that it can remap, it gets a C-a event. This is generally done by the obvious combination of [control] and [a] keys. But, the event could be generated by a different keystroke, say [F10] or even [y] (confusing, yes).

This is how I understand it. Clarifications are welcome of course.

6
ответ дан 3 December 2019 в 22:01
поделиться

Самый простой способ переназначить CapsLock в Windows - загрузить эту CapsLockChanger утилиту, выбрать ключ для сопоставления с (Control) и поместить его в меню «Пуск-> Запуск». ,

Он остается в вашем лотке, выполняет работу по переназначению ключей и не требует возиться с реестром.

1
ответ дан 3 December 2019 в 22:01
поделиться

Вам не обязательно нужны права администратора для изменения реестра.
Фактически, реестр Windows - это сегментированный ресурс, очень похожий на файловую систему, и вы можете иметь отдельные разрешения для различных ветвей и узлов реестра. Вы уверены, что ваше предположение о том, что вы не можете изменить реестр, верно? Я думаю, что это верно по умолчанию в Vista, но не в предыдущей версии Windows.

0
ответ дан 3 December 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: