NYAGOS 및 conemu를 통한 키보드 작업 확장

6539 단어 conemunyagos
Windows 명령줄 셸 "NYAGOS" 사용하기 시작했는데 커서 키를 자주 사용하기 때문에 조작이 고민되는 부분이 있어서 확장했습니다.
하고 싶은 일
  • 명령줄에서 한 단어 단위로 좌우로 이동하기를 원합니다
  • "Ctrl+←", "Ctrl+→"를 통해 이러한 내용을 실현하고자 함
  • 단일 NYAGOS가 아닌 conemu부터 이동
  • 참고문
  • ConEmu+nyyagos에서 Windows 터미널 환경 만들기
  • 2015년판은 오늘의 Windows 터미널+조개 구성을 생각해 봤습니다.
  • 드디어 코너와 NYAGOS를 영입했습니다.
  • NYAGOS 매뉴얼 보세요.
  • 루아 확장이 가능하기 때문에 무엇을 할 수 있는지 확인했고, 한 문자 단위의 좌우 이동은 루아 쪽에서 시작됐다.
  • 단어 단위의 정보는 매개 변수로 전달되지 않은 것 같아서 현재 위치와 이동하고 싶은 위치를 한 글자씩 이동하는 방법은 간단하다.문자열이 많아지면 무거워질 수 있습니다.
  • 또 다른 문제는 바인딩할 수 있는 키 조합이 적고 Ctrl+화살표를 바인딩할 수 없다는 것이다.이거 다음에 conemu 옆에 연결해.
  • NYAGOS로 Lua 확장
  • 왼쪽으로 이동(되돌아오는 방향), 현재 위치에서 역방향으로 문자열을 조사합니다. 최초로 발견된 공간으로 이동할 수 있다면 좋겠지만 Lua는 rfind(역방향 검색)가 없어서 먼저 막혔습니다.

  • Stackoverflow 선생님.에 따라 최장 경기를 할 수 있습니다!그래서 나는 확실히 그렇다고 생각한다.
  • 정규 표현식 ()에서 이 위치를 index 번호로 로아의 규격으로 되돌려줍니다.
  • 오른쪽으로 이동(전진방향)하기 쉬워요.find를 사용하면 돼요.
  • 공간이 없으면 첫 번째 또는 마지막 단계로 이동합니다.
  • 바인딩 키의 분배는 내가 사용하지 않을 수 있는 키로'M A(Alt+A)'와'M B(Alt+B)'에 분배되었다.
  • wordmove.lua
    -- ref) http://stackoverflow.com/questions/17386792/how-to-implement-string-rfind-in-lua
    nyagos.bindkey("M_A",
        function(this)
            local pos = (this.text:sub(1,this.pos-1)):match'.*() '
            if pos and (pos < this.pos) then
                for i = 1, this.pos-pos do
                    this:call("BACKWARD_CHAR")
                end
            else
                this:call("BEGINNING_OF_LINE")
            end
            return nil
        end
    )
    
    nyagos.bindkey("M_B",
        function(this)
            local pos = this.text:find(' ',this.pos+1)
            if pos and (pos > this.pos) then
                for i = 1, pos-this.pos do
                    this:call("FORWARD_CHAR")
                end
            else
                this:call("END_OF_LINE")
            end
            return nil
        end
    )
    
    conemu에서 Hotkey 매크로 사용
  • conemu의 HotKey를 사용하면 NYAGOS의 바인딩 키를 다른 키로 할당할 수 있습니다.
  • conemu의'Keys & Macro'에서 Hotkey를 비어 있는 곳(예를 들어 Macro01 등)에 분배한다.
  • 는 핫키를 ctrl+LEFT로, GUI 맥로에서Keys("!a")로 한다.!a = Alt+A 중 NYAGOS는 M_A에 해당한다.
  • 는 핫키를 ctrl+RIGHT로, GUI 맥로에서Keys("!b")로 한다.!b = Alt+B 중 NYAGOS는 M_B에 해당한다.
  • 이렇게 되면 코뮤에서'ctrl+←'를 입력하면 Alt+A가 NYAGOS로 전송되고 설정된 바인딩키로 동작한다.
  • 좋은 웹페이지 즐겨찾기