
Windows 10에서는 Linux Bash용 하위 시스템을 설치했습니다. 하지만 Emacs Ctrl+ 의 단축키에 문제가 있어 space마크 포인트를 설정하지 않습니다.
내가 시도했지만 도움이 되지 않은 것:
Windows 콘솔의 속성 메뉴에서 "Ctrl 키 단축키 활성화"를 선택 취소하려고 했습니다.
다른 터미널 ConEmu를 사용해 보았지만 성공하지 못했습니다.
이것이 ctrl + space 와 비슷한 문제가 있는 우분투와 관련이 있고 Windows Linux Bash가 우분투 저장소를 사용하고 있는지 궁금합니다.
답변1
없다솔루션이에 대해 이 글을 쓰는 시점(2016년 9월 1일)에는 Ctrl-Space가 Bash 터미널을 통과하도록 만드는 것과 관련하여 많은 사용자에게 충분할 수 있는 해결 방법이 있습니다. PuTTY를 사용하여 SSH를 통해 연결하면 강제로 Ctrl-Space 처리. (tty 모드에서는 Ctrl-Space와 Ctrl-@를 구별하는 것이 불가능합니다. 왜냐하면 둘은 동일한 문자 코드이기 때문입니다. 그러나 기본적으로 Emacs는 그런 방식으로 처리하도록 설정되어 있으므로 문제가 되지 않습니다 set-mark-command
.)
- OpenSSH 서버를 설치합니다
sudo apt-get install openssh-server
. 이미 설치되어 있는 경우 제거(sudo apt-get remove openssh-server
)한 후 다시 설치하여 구성 파일을 재설정하세요. 편집하다/etc/ssh/sshd_config파일(sudo 사용)은 다음과 같습니다.
- 주석 처리되지 않은 줄 설정이 있으면
PermitRootLogin
주석 처리하세요. 줄을 추가하세요PermitRootLogin no
. - USERNAME을 Linux 사용자 이름으로 바꾸는 행을 추가합니다
AllowUsers USERNAME
(이것이 무엇인지 모르는 경우whoami
Bash 프롬프트에서 명령을 실행하십시오). - 이상적으로는 SSH 키를 사용하여 비밀번호 없는 인증을 설정해야 하지만 이를 수행하는 방법은 이 질문의 범위를 벗어납니다(사용 가능한 많은 가이드가 있습니다. 웹에서 "passwordless ssh-keygen"을 검색하세요). 그동안 해당 줄을 추가하거나 주석 처리를 제거하세요
PasswordAuthentication yes
. - 세트
UsePrivilegeSeparation no
; 아마도 파일에서 다음과 같은 줄을 발견하게 될 것입니다UsePrivilegeSeparation yes
. 그냥yes
으로 변경no
하고 저장하세요./etc/ssh/sshd_config파일.
여기서 문제가 발생하면 1단계를 반복하여 파일을 복원할 수 있습니다.
- 주석 처리되지 않은 줄 설정이 있으면
- 명령을 사용하여 SSH 서버를 시작합니다
sudo service ssh --full-restart
. - PuTTY 사용(다운로드여기),
localhost
호스트 이름 필드에 로그인하면 다른 모든 항목은 기본값으로 유지됩니다. Linux 사용자 이름과 비밀번호를 입력하라는 메시지가 표시됩니다. - 달리다
emacs
. Ctrl-space는 원하는 대로 표시를 설정합니다.
(위의 단계는~ 아니다, 그 자체로 시스템이 SSH 연결을 허용할 수 있도록 합니다.다른호스트. 그렇게 하려면 인바운드 TCP 포트 22를 허용하도록 Windows 방화벽 규칙도 변경해야 합니다.)
~ 안에또 다른 답변"하지만 퍼티는 로컬 터미널이 아닙니다."라고 말씀하셨죠. 이런 방식으로 사용할 수 있다는 사실을 몰랐는지 localhost
, 아니면 로컬 터미널에 비해 오버헤드가 더 크기 때문에 PuTTY를 무시했는지는 잘 모르겠습니다. 후자라면 걱정하지 않겠습니다. 대화형 SSH 세션은 매우 가벼운 로드입니다. (확실히 그렇죠많이X Window System을 실행하는 것보다 로드가 적기 때문에 GUI Emacs나 xterm을 실행할 수 있습니다!)
직선 터미널에 비해 이 방법을 실행할 때의 유일한 단점은 마치 클립보드의 내용을 매우 빠르게 입력한 것처럼 붙여넣기 이벤트가 문자별로 전송된다는 것입니다. 이로 인해 전기 쌍, 들여쓰기, 조각 확장 등이 발생할 수 있습니다. 불. (붙여넣어야 한다~ 아니다진행 중인 붙여넣기를 감지하고 붙여넣기가 완료될 때까지 키코드를 비활성화하는 논리가 있으므로 키코드 명령이 실행되도록 합니다.)
그리고 표준 Bash 터미널에 비해 최소한 한 가지 매우 큰 이점이 있습니다. 마우스 이벤트는 Emacs가 응답할 수 있는 형식으로 PuTTY에서 지원되므로 아이러니하게도 PuTTY에서 마우스를 사용하여 포인트를 이동할 수 있습니다. t 로컬 터미널과 연결하세요.
답변2
저는 ConEmu를 사용합니다. 우아한 방법은 없지만 매크로를 사용하여 해결할 수 있습니다.
☰
"설정"을 엽니다( 상단 아이콘 클릭 ).- "키 및 매크로"를 클릭하세요.
- 오른쪽에서 "Macro 01" .. "Macro 32" 옵션이 보일 때까지 아래로 스크롤하고 사용 가능한 옵션을 선택합니다(상관 없음).
해 보자매크로 01이 예에서는. - 첫 번째 드롭다운 메뉴에서 "Space"를 선택합니다.
- 두 번째 드롭다운 메뉴에서 "Ctrl"을 선택합니다.나머지 2개의 드롭다운 메뉴는 그대로 둡니다.
아래에 붙여넣으세요.GUI 매크로필드:
keys("\e");keys("x");keys("s");keys("e");keys("t");keys("-");keys("m");keys("a");keys("r");keys("k");keys("-");keys("c");keys("o");keys("m");keys("m");keys("a");keys("n");keys("d");keys("\n")
M-x select-mark-command
위는 기본적으로 문자열을 emacs로 보냅니다 .이제 "설정 저장"을 클릭하세요.
결국 다음과 같아야 합니다.
답변3
이 프로젝트를 통해 MinTTY를 대체 터미널로 사용할 수 있습니다.https://github.com/mintty/wsltty. PuTTY에서 파생되었지만 SSH가 필요하지 않습니다. PuTTY와 마찬가지로 Ctrl-space를 잘 처리합니다.