Порядок $ и ^ в vim. Это наоборот? - PullRequest
2 голосов
/ 20 марта 2012

В vi ^ перемещает курсор в крайнее левое положение (к первому небелому символу), а $ перемещает курсор в крайнем правом положении в строке.^ $ на моей клавиатуре справа налево (то есть $ ^), что означает, что клавиша слева ($) перемещает курсор вправо, а клавиша справа (^) перемещает курсор влево.

Меня это смутило, я ожидал, что ключи будут другими.

Этот порядок - просто совпадение или есть какая-то причина для этого?Спасибо.

Ответы [ 4 ]

9 голосов
/ 20 марта 2012

В регулярных выражениях , ^ - это специальный символ привязки, означающий «начало строки», а $ - специальный символ привязки, означающий «конец строки».Я не знаю, есть ли какая-то особая причина, по которой они были выбраны.

5 голосов
/ 22 марта 2012

Я полагаю, что использование ^ для «начала строки» происходит от старых терминалов ADM-3A (c. 1975), чья раскладка клавиатуры показана ниже (взято из статьи в Википедии)).Символ ^ является тем же ключом, что и Home и ~, и именно поэтому ~ используется для домашнего каталога в Unix.Этот макет также является источником hjkl в качестве клавиш перемещения в Vi (m).

enter image description here

Я не знаю, почему $ изначально использовался для "концаline ", но, возможно, это просто потому, что она напоминает букву S и поэтому была выбрана для завершения строки.$ также использовался для разграничения « отформатированного преобразования » в ALGOL 68 (c. 1968), так что, возможно, есть более древние источники.

2 голосов
/ 20 марта 2012

Я предполагаю, что это относится к значению ^ (начало строки) и $ (конец строки) в регулярных выражениях.

2 голосов
/ 20 марта 2012

Да, в регулярном выражении ^ указывает начало строки, а $ ее конец. После того, как вы сделали достаточно регулярных выражений, это кажется естественным;)

...