2017-03-20 4 views
2

언젠가는 명령을 입력 할 준비가되어 있지만 그 명령을 어떤 식 으로든 변경했기 때문에 긴 명령이라면 텍스트 파일을 열어야한다는 것을 기억합니다 (예 : 명령에서). 그래서 내가하는 대부분의 작업은 명령 (Ctrl + C)을 취소 한 다음 텍스트 파일을 열어 필요한 정보를 얻은 다음 텍스트 파일에서 붙여 넣은 값으로 명령을 다시 입력하는 것입니다. 서버가 어떤 종류의 GUI도 가지고 있지 않고 이전 명령을 복사 할 수 없어서 잃어 버리지 않으면 특별히 효율적이지 않습니다.키 조합을 눌러 물고기 쉘의 입력 준비 명령으로 돌아갈 방법이 있습니까?

내 질문은 입력 할 준비가 된 명령을 저장하는 데 사용할 수있는 조합 키가 있습니까? 잃어 버리지 않고 다시 입력 할 필요가 없습니다.

감사합니다.

답변

1

현재이 기능을 사용할 수 없습니다.

을 수행하는 가장 쉬운 방법은이 은닉 명령 줄

그것은 것을 기억하는 바인딩을 추가 명령 줄을

  • 을 숨기고 바인딩을 취소

    • 변경에 아마 다음과 같이 작업하십시오.

      L :

      function recall_commandline 
          if set -q stashed_commandline 
           commandline -r -- $stashed_commandline 
          end 
      end 
      

      funced __fish_cancel_commandline를 사용 (__fish_cancel_commandline에 추가합니다.

      set -g stashed_commandline $cmd 
      # right before: 
      commandline "" 
      

      fish_user_key_bindings

      bind \cr recall_commandline 
      

      에 추가 이것은 Ctrl 키 +는 지난 취소 명령 행을 불러 r에 눌러 할 수 있습니다 : 당신이 만족하면) funcsave __fish_cancel_commandline을한다. 명령 행을 다중 행으로 확장하는 것은 "명령 행"이 여러 행을 가질 수 있으므로 중요하지 않으며, 명령 행을 히스토리에 추가하여 일반 바인딩으로 호출 할 수 있습니다.

      function toggle-comment-cmd-buffer --description 'Comment/Uncomment the current or every line' 
          set -l cmdlines (commandline -b) 
          if test "$cmdlines" = "" 
           return 
          end 
          set -l cmdlines (printf '%s\n' '#'$cmdlines | string replace -r '^##' '') 
          commandline -r $cmdlines 
          string match -q '#*' $cmdlines[1]; and commandline -f execute 
      end 
      

      내가 thusly 히 바인딩 : bind \e\# toggle-comment-cmd-buffer

  • +0

    답변 해 주셔서 감사합니다. 새 버전의 물고기가 그걸 가지고 있는지 알고 있습니까? – VaTo

    +0

    나는이 문제에 대해 전혀 알지 못해서 계획이 없다고 말하고 싶습니다. 원한다면 하나를 열어달라고 요청할 수 있습니다. – faho

    1

    나는/코멘트를 돌려 현재 문을 주석을 해제하기 위해 다음과 같은 기능을 가지고있다. 이 방법을 사용하면 현재 명령문에 명령문에 빠르게 주석을 달고 다른 명령을 할 수 있습니다. 그런 다음 주석을 다시 호출하고 [alt-#]을 다시 눌러 주석 문자를 제거하고 명령을 계속 수정하십시오.

    ksh93에서 비슷한 일을하는 데 익숙해 졌기 때문에 이것을 개인용 설정에서 설정했습니다.