단축키로 특수문자 입력하기

컴퓨터로 글을 쓰다보면, 파일 이름이나 인터넷 주소에 특수문자(& 따위)를 넣을 수 없다든지 말줄임표(⋯)나 여닫는 따옴표(“”)를 곧바로 입력할 수 없다든지 하는 기술적 제약들이 거슬릴 때가 있다. 이로 인해 내용이 길어지거나 인용이 많아질수록 귀찮아 지지만, 코딩만 할 뿐 긴 글을 쓸 일이 없었을 때는 감수하는 것이 합리적이었다. 그러다가 블로그 정비 중 문득 편집기의 자동-문서-꾸밈 기능에 의존하지 않고 문제를 해결하고 싶다는 생각을 했다. 문제 해결 과정을 기록해둔다.

요구

나열·축약·인용에 필요한 문장부호를 추리고 그것들을 간단히 입력할 수 있는 방법을 찾는다. 여러 기기에서 다양한 목적으로 키보드를 사용하기 때문에, 크로스 플랫폼 솔루션인지 여부 또한 중요하다.

범주 부호 우선순위 비고
나열 높음 파일 시스템 상 특수하게 취급되는 반각 & 대신 전각 를 쓴다
나열 · 높음 CR1; 쉼표로도 쓰이는 , 대신 ·을 적극 활용한다
축약 중간 입력 빈도가 높지 않으나 겸사겸사 구현하기로 한다
인용 「」 높음 CR; 〈〉 ‘’ 대신 소제목·부분 인용에 쓴다
인용 『』 높음 CR; 《》 “” 대신 제목·전체 인용에 쓴다
인용 〈〉 낮음 빠르게 입력할 수 있다 해도 아스키 문자 <>와 비슷해서 꺼려진다
인용 《》 낮음 〈〉의 우선순위를 낮춰 잡음에 따라 함께 포기한다

접근법

제안

  1. 키보드 매핑.
  2. 램 상주 입력 단축키 서비스 사용.
  3. 램 상주 입력 스니펫 서비스 사용.
  4. 편집기 단축키 설정.
  5. 편집기 스니펫 설정.

평가

  1. 키보드 매핑:일반적으로 유니코드를 직접 다루는데 한계가 있다23.
  2. 램 상주 입력 단축키 서비스:가장 적합하지만, 믿을 만 한 크로스 플랫폼 프로젝트를 찾기 어렵다4?
  3. 램 상주 입력 스니펫 서비스:스니펫 방식은 입력이 지연 평가되므로 최선은 아니다.5.
  4. 편집기 단축키 설정:특정 앱 종속성이 발생하는 것을 원치 않는다6.
  5. 편집기 스니펫 설정:목적에 비해 적합성과 범용성이 모두 부족하다.

결정

당장은 필요한 단축 입력 항목이 많지 않으므로, 범용성보다는 적합성을 기준으로 판단하는 것이 합리적이다. 접근법 제안 2항에 따라 환경 별 서비스를 각각 찾아 쓰기로 한다.

OS 솔루션
윈도우즈 파워토이즈
맥OS 카라비너-엘리먼트
리눅스 내장 입력기

해결

요구 사양 정리

단축키 출력 비고
OS + 3/# # 위치에 배정
OS + 7/& & 위치에 배정
OS + ,/< · , 위치에 배정
OS + ./> . 위치에 배정
OS + ;/: : 위치에 배정
OS + 9/( ( 위치에 배정
OS + 0/) ) 위치에 배정
OS + [/} [ 위치에 배정
OS + ]/} ] 위치에 배정

솔루션 적용

솔루션 설정 위치 기능 평가
파워토이즈 Home/Keyboard Manager/Shortcuts 쓰기 편하고 백업·복원이 가능하다
카라비너-엘리먼트 확인 필요 평가 필요
내장 입력기 확인 필요 평가 필요

결과 보고

문장부호 계통 특수문자를 빠르게 입력하기 위해 단축키 서비스를 이용하기로 했다. 기능 구현에는 문제가 없었으나, 결국 OS 개인화의 일종으로 장치마다 따로 작업해야 한다는 점은 아쉽다.

  1. 나를 위한 맞춤형 규칙을 우선시한다. 

  2. QMK 최신 버전에 유니코드 매핑 플래그가 있다고 하지만, 펌웨어 빌더인 QMK Configurator에서 공식적으로 지원하지 않는다. 

  3. 매크로를 이용해서 유니코드 입력 시퀀스를 ‘재생’하는 방법이 있지만, 이는 매핑이 아니다. 

  4. 지금으로서는 파워토이즈(윈도우즈)와 카라비너(맥OS)를 각각 사용하는 것이 현실적이다. 

  5. 다만, 다양한 활용이 가능하다는 장점이 있다. 크로스 플랫폼 프로젝트인 에스판소가 좋아 보인다. 

  6. 정해진 앱에서만 글을 쓴다면 관리 비용 측면에서 1·2·3항보다 합리적일 수 있다. 이 경우, 비주얼 스튜디오 코드 안에서 해결할 수 있다.