Самый быстрый способ переместить курсор в командной строке терминала?

Я использую этот метод, когда мне нужно сделать что-то подобное:

static void Gimme<T>(out T myVariable)
{
    myVariable = default(T);
}

и использовать его следующим образом:

Gimme(out int myVariable);
Print(myVariable); //myVariable is already declared and usable.

Обратите внимание, что встроенное объявление внешних переменных доступный с C # 7.0

145
задан Celeritas 26 August 2015 в 09:40
поделиться

5 ответов

Поскольку это еще не закрыто, вот еще несколько вариантов.

  • Используйте Ctrl + x , а затем Ctrl + e , чтобы открыть текущую строку в редакторе, указанном $ FCEDIT или $ EDITOR или emacs (пробовал в в этом порядке).
  • Если вы выполнили команду ранее, нажмите Ctrl + r для обратного поиска в истории и введите option25 (в данном случае). Будет отображена строка. Нажмите Tab , чтобы начать редактирование с этого момента.
  • Используйте расширение истории с модификатором s /// . Например, ! - 2: s / - option25 / - newoption / повторно запустит предпоследнюю команду, но заменит option25. Чтобы изменить последнюю команду ./ cmd , используйте синтаксис ! string : ! ./ cmd: s / - option25 / - newoption /
    В подстановке вместо / можно использовать любой разделитель.
  • Если редактируя предыдущую строку, можно воспользоваться быстрой заменой: ^ - option25 ^ - newoption
  • Поиск символов. Об этом упоминал Pax, и это можно сделать в обычном режиме emacs с помощью Ctrl + ] для прямого поиска и Ctrl + Alt ] + ] для обратного поиска.

Я рекомендую второй вариант. Ctrl + r действительно удобно и быстро, не надо возиться с редакторами, и вы видите результаты до запуска команды (в отличие от расширений истории).

  • При редактировании предыдущей строки можно использовать быструю замену: ^ - option25 ^ - newoption
  • Поиск символов. Об этом упоминал Pax, и это можно сделать в обычном режиме emacs с помощью Ctrl + ] для прямого поиска и Ctrl + Alt ] + ] для обратного поиска.
  • Я рекомендую второй вариант. Ctrl + r действительно удобно и быстро, не надо возиться с редакторами, и вы видите результаты до запуска команды (в отличие от расширений истории).

  • При редактировании предыдущей строки можно использовать быструю замену: ^ - option25 ^ - newoption
  • Поиск символов. Об этом упоминал Pax, и это можно сделать в обычном режиме emacs с помощью Ctrl + ] для прямого поиска и Ctrl + Alt ] + ] для обратного поиска.
  • Я рекомендую второй вариант. Ctrl + r действительно удобно и быстро, не надо возиться с редакторами, и вы видите результаты до запуска команды (в отличие от расширений истории).

    и Ctrl + Alt + ] для обратного поиска.

    Я рекомендую второй вариант. Ctrl + r действительно удобно и быстро, не надо возиться с редакторами, и вы видите результаты до запуска команды (в отличие от расширений истории).

    и Ctrl + Alt + ] для обратного поиска.

    Я рекомендую второй вариант. Ctrl + r действительно удобно и быстро, не надо возиться с редакторами, и вы видите результаты до запуска команды (в отличие от расширений истории).

    101
    ответ дан 23 November 2019 в 22:33
    поделиться

    После выполнения команды однажды, выполнение fc

    Это запустится $EDITOR с предыдущей командой, тогда можно использовать постоянного редактора для изменения команды. Когда Вы сохраните и выйдете, файл будет выполняться.

    .. но, как сказанный Мир - командная строка не особенно хороша для редактирования нелепо длинных линий - почему бы не превратить команду в сценарий?

    8
    ответ дан dbr 26 August 2015 в 19:40
    поделиться
    • 1
      Карты CRC походят на хороший дополнительный инструмент при работе с людьми кто don' t знают усовершенствованные конструктивные решения, но любой другой аналог, который доносит смысл сообщения, должен одинаково подойти для передачи потребности абстракции и разработки. – Statement 19 February 2010 в 11:54

    Одна опция состоит в том, чтобы использовать M-x shell в emacs. Это обеспечивает все средства редактирования и нажатия клавиш, который emacs имеет, таким образом C-s может использоваться для поиска текста option25, например.

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

    1
    ответ дан Frank 26 August 2015 в 19:40
    поделиться

    Я склонен предпочитать vi режим редактирования (так как те нажатия клавиш встраиваются в мой спинной мозг теперь (мозг, не используемый вообще), наряду с CTRL-K, CTRL-X от WordStar 3.3:-). Можно использовать командную строку set -o vi для активации его (и set -o emacs для возвращения).

    В Vi, это было бы (ESC-K для подъема строки сначала, конечно) "f5;;B" (без двойных кавычек).

    , Конечно, необходимо понять то, что находится на строке для схождения с рук этого. В основном это

    f5 to find the first occurrence of "5" (in --option5).
    ;  to find the next one (in --option15).
    ;  to find the next one (in --option25).
    B  to back up to the start of the word.
    

    , Давайте посмотрим, могут ли emacs поклонники предложить лучшее решение, меньше чем 5 нажатий клавиш (хотя я не хочу запускать религиозную войну).

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

    На самом деле, я могу пойти один лучше, чем это: "3f5B" для нахождения третьего возникновения "5" затем обратно до запуска слова.

    10
    ответ дан paxdiablo 26 August 2015 в 19:40
    поделиться

    Это не могло бы быть самым быстрым, но эта потребность быть здесь, некоторое чтение приблизительно перемещения курсора ANSI

    , escape-последовательности ANSI позволяют Вам перемещать курсор вокруг экрана по желанию. Это более полезно для полноэкранных пользовательских интерфейсов, сгенерированных сценариями оболочки, но может также использоваться в подсказках . Escape-последовательности перемещения следующие:

    - Position the Cursor:
      \033[<L>;<C>H
         Or
      \033[<L>;<C>f
      puts the cursor at line L and column C.
    - Move the cursor up N lines:
      \033[<N>A
    - Move the cursor down N lines:
      \033[<N>B
    - Move the cursor forward N columns:
      \033[<N>C
    - Move the cursor backward N columns:
      \033[<N>D
    
    - Clear the screen, move to (0,0):
      \033[2J  or \033c
    - Erase to end of line:
      \033[K
    
    - Save cursor position:
      \033[s
    - Restore cursor position:
      \033[u
    

    (...)

    Попытка, включающая следующую строку кода при подсказке (немного более ясно, что она делает, если подсказка является несколькими строками вниз терминал, когда Вы вставляете это): echo -en "\033[7A\033[1;35m BASH \033[7B\033[6D" Это должно переместиться, курсор семь выстраивает в линию экран, распечатайте слово "Bash" и затем возвратитесь туда, где это начало производить нормальную подсказку.

    <час>

    Примеры :

    Перемещение курсор назад 7 строк:

    echo -e "\033[7A"
    

    Перемещение курсор для выравнивания 10, столбец 5:

    echo -e "\033[10;5H"
    

    Быстро эхо коды цветов , к colorize программа:

    echo -e "\033[35;42m" ; ifconfig
    
    0
    ответ дан 23 November 2019 в 22:33
    поделиться
    Другие вопросы по тегам:

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