[컴] espanso, text 확장기

copilot / 코딩 / suggest / candidate / 예상 / text expander

espanso, text 확장기

설치

설명

이것은 bash 의 alias 와 비슷하다. 다만 차이점은 bash 의 alias 는 bash 내에서만 된다. 즉, command line 에서만 쓰인다.

하지만 이것은 gui 에서 쓰인다. 그래서 windows 내의 모든 application 안에 있는 typing 영역에서 사용할 수 있다. (예를 들면, 콘솔창, 텍스트 에디터, 웹브라우저의 주소창등.)

그래서 typing 을 줄여줄 수 있다. coding 에서 쓰는 snippet 과 같은 동작도 지원해주고, shell 에서 실행한 결과를 text 로 가져오고 싶다면 그런 것도 지정해 놓을 수 있다.

base.yml 에 자신이 원하는 command 를 추가해 놓을 수 있다.

  • %appdata%\espanso\match\base.yml

community

package

espanso 는 package를 제공한다.

설치된 package list 를 보여준다

espansod.exe package list

예시

아래처럼 해놓으면, :s2 를 typing 할 때마다, console 에서 dir 해서 나온 결과값이 화면에 typing 이 된다.

matches:
  ...
  - trigger: ":s2"
    replace: "{{output}}"
    vars:
      - name: output
        type: shell
        params:
          cmd: "dir"

  - trigger: ":ip"
    replace: "{{output}}"
    vars:
      - name: output
        type: shell
        params:
          cmd: "curl https://api.ipify.org"
          shell: cmd

toggle key

default.yml 에 가서 toogle_key 를 설정하면 된다.

  • %appdata%\espanso\config\default.yml

만약 ‘ALT’ 로 설정했다면, ’ALT’key 를 두번 누르는 경우 espanso 가 동작하지 않게 된다.

search bar key

default.yml 에 가서 search_shortcut 를 설정하면 된다.

search_shortcut: ALT+SHIFT+SPACE

특정 app 에서 disable

특정 app 이 실행될때 espanso 를 disable 시킬 수 도 있다.

include, exclude 규칙

_mymatch.yml 처럼 앞에 _를 붙이면, espanso 가 자동으로 load 하지 않는다.

debugging

log 보기

문제가 발생할 때 log 를 보려면 다음처럼 하면 된다.

espansod.exe log

debug: true

  - trigger: ":localip"
    replace: "{{output}}"
    vars:
      - name: output
        type: shell
        params:
          cmd: "ip a | grep 'inet 192' | awk '{ print $2 }'"
          debug: true

windows 에서 주의할 점

만약 espanso 를 일반 사용자 계정으로 실행한다면, ‘관리자’(administrator) 계정으로 실행한 app 안에서는 동작하지 않는다.

example

  • %appdata%.yml
# espanso match file
matches:

  - trigger: ":ip"
    replace: "{{output}}"
    vars:
      - name: output
        type: shell
        params:
          cmd: "curl https://api.ipify.org"
          shell: cmd

  - trigger: ":dbdump"
    replace: "mysqldump --databases mydb -h locahost -u myuserid -P 3306 -p > rds-mydb.sql"
  - trigger: ":dbinsert"
    replace: "chcp 65001 && \"mysql.exe\" -u root -p mydb < rds-mydb.sql"

  - trigger: ":cutf"
    replace: "chcp 65001"

  # markdown
  - trigger: ":img"
    replace: "![]('{{clipboard}}')"
    vars:
      - name: "clipboard"
        type: "clipboard"
  # markdown
  - trigger: ":ref"
    replace: "## References\n"

  # run an app
  - trigger: ":espanso-config"
    replace: "{{output}}"
    vars:
      - name: output
        type: shell
        params:
          cmd: "c:\\Program Files\\Sublime Text 3\\sublime_text.exe"
          shell: cmd

  - trigger: ":run-sublimetext"
    replace: "{{output}}"
    vars:
      - name: output
        type: shell
        params:
          cmd: "c:\\Program Files\\Sublime Text 3\\sublime_text.exe"
          shell: cmd

  - trigger: ":run-lnk"
    replace: "{{output}}"
    vars:
      - name: output
        type: shell
        params:
          cmd: "c:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\7-Zip\\7-Zip File Manager.lnk"
          shell: cmd
  # message 를 받는 form 을 보여준다.
  - trigger: ":git-commit"
    form: |
      'git commit -m "[[message]]"'
  # cmd /v 가 필요
  - trigger: ":git-bcopy"
    replace: |
              for /f "delims=" %a in ('git --no-pager branch ^| d:\a\apps\fzf\fzf.exe +m') do @set branch=%a && echo !branch:~2,-1! | clip
  - trigger: ":git-cbranch"
    replace: |
              for /f "delims=" %a in ('git --no-pager branch ^| d:\a\apps\fzf\fzf.exe +m') do @set branch=%a && git checkout !branch:~2,-1!

  # 여러파일중 하나를 선택하는 예시
  - trigger: ":file"
    replace: "{{form1.file}}"
    vars:
      - name: files
        type: shell
        params:
          cmd: "dir /b ."
          shell: cmd
      - name: form1
        type: form
        params:
          layout: |
            Select file:
            [[file]]
          fields:
            file:
              type: list
              values: "{{files}}"
  # And much more! For more information, visit the docs: https://espanso.org/docs/

See Also

  1. 쿠…sal: [컴][유틸] fzf - fuzzy finder
  2. Speed up git commands with Autohotkey - DEV Community : autohotkey 로 espanso 와 비슷한 효과를 낼 수 있다. 
  3. 쿠...sal: [컴] espanso, text 확장기, 내설정
  4. Hotkeys & Text Expander | 500+ Productivity Resources : 다른 extender 들을 확인할 수 있다.

댓글 없음:

댓글 쓰기