Клавиатуры Colemak с Emacs или [закрытым] VIM

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

26
задан Leushenko 1 May 2014 в 19:06
поделиться

6 ответов

Довольный видеть другого пользователя Colemak:)

Для Emacs действительно нет потребности повторно отобразиться, так как начальные "ярлыки" не разработаны, чтобы быть друг близко к другу. В любом случае Вы собираетесь быть более удобным использованием Emacs на Colemak, чем на Стандартном расположении букв на клавиатуре (по крайней мере, я был).

В Vim это намного более хитро, так как hjkl будет полностью смешан. С другой стороны я всегда чувствовал, что hlkl был поврежден и должен был вместо этого быть jkj; или ijkl, таким образом, перекарта является, вероятно, хорошей вещью. Вот более широкая дискуссия о Colemak+Vim на форуме Colemak: http://forum.colemak.com/viewtopic.php?id=50

7
ответ дан Eugen Anghel 28 November 2019 в 07:14
поделиться

Я работал с Dvorak в течение многих лет теперь (вероятно, ~4). Я также использовал энергию по всем причинам стандарта, что необходимо использовать энергию как вещи (меньше, редактирования конфигурации, которые имеют их собственных редакторов (visudo, и т.д.), и т.д.). Emacs был на самом деле первой программой Unix, которую я изучил (я - собственный компонент мира Apple), и я в настоящее время выбирал его, создают резервную копию, будучи наказанным быстрыми движениями Yegge о том, как смехотворно потрясающий это.

От позиции строго раскладки клавиатуры, я сказал бы, что Emacs является, вероятно, победителем здесь, потому что никакое переотображение не требуется. Кроме свопинга клавиши Caps Lock для Клавиши CTRL (который должен действительно быть сделанным периодом, клавиша Caps Lock похожа на пятно средней школы каждой клавиатуры), я сказал бы, что каждая привязка клавиш более удобна для использования с Dvorak, чем со Стандартным расположением букв на клавиатуре. Я особенно нахожу, что постоянно используемый C-x и привязка M-x очень удобны для типа.

Однако энергия не является действительно никаким грандиозным предприятием. 'j' и 'k' все еще друг прямо рядом с другом. 'h' и 'l', по крайней мере, удобно с одной стороны и идут и выше домашней строки. Кроме этого, просто о переотображении ключей в Вашем уме для того, чтобы сделать вещи в редакторе Вы хотите к hae, происходят. Я лично не вижу оснований, чтобы повторно отобразить что-либо, и я - высокий риск для RSI (следовательно переключатель Dvorak). Для клавиатуры центральные приложения как энергия и emacs, то, что я могу использовать их удобно неизменный, должно быть довольно впечатляющим.:)

Удачи!

4
ответ дан Tim Visher 28 November 2019 в 07:14
поделиться

Я - vim+qwerty пользователь (я попытался изучить Дворака, но оказывается, что скорость печати не является моим ограничивающим фактором уровня, и у меня нет проблем RSI). Только hjkl клавиши перемещения курсора в vi (m) являются зависимым положения, все остальное - мнемосхема. Я вижу на расположении Colemak, которое h/l неопределенно слева/справа, но j/k вниз/. Тем не менее, я сомневаюсь, что это было бы значительным камнем преткновения. Вы могли или использовать клавиши со стрелками или продолжить использовать hjkl и соглашение с забавными положениями.

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

2
ответ дан Greg Hewgill 28 November 2019 в 07:14
поделиться

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

я собираюсь повторно отобразиться за выходные на самом деле. Я использовал в течение прошлого года отображения по умолчанию с Dvorak.

1
ответ дан 2 revs 28 November 2019 в 07:14
поделиться

Я недавно перешел на Colemak, и я также использую Vim в качестве основного редактора.

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

Если вы переназначите клавиши перемещения Vim, вы окажетесь в неудачном положении, когда не сможете для работы ванильного Vim с какой-либо реальной эффективностью - например, если вам нужно подключиться к серверу по SSH. Я утверждаю, что для большинства людей это будет гораздо более распространенным явлением, чем использование чьего-либо компьютера, на котором нет Colemak.

Также есть плагины Vim, которые вы можете получить однажды, которые будут конфликтовать с вашими переназначениями,

10
ответ дан 28 November 2019 в 07:14
поделиться

Это в вашем .vimrc изменит движение курсора для Colemak, не затрагивая другие отображения vim, потому что это влияет только на буквы h/j/k.

  • up = h (помечено на клавиатуре как "h")
  • down = k (помечено на клавиатуре как "n")
  • left = j (помечено на клавиатуре как "y")
  • right = l (помечено на клавиатуре как "u")

Here is the mapping:

noremap h k
noremap j h
noremap k j
6
ответ дан 28 November 2019 в 07:14
поделиться
Другие вопросы по тегам:

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