일부 emacs 함수에서 "default"(마지막으로 사용한) 문자열을 제거하려면 어떻게해야합니까?


12

다음과 같은 문제가 있습니다 .'Cx rt '(문자열 사각형)를 사용할 때 선택한 사각형을 바꾸려면 일부 문자열을 입력하라는 메시지가 표시됩니다. 내가 ";;"라고 말하자 (사각형을 주석으로 처리). 이것은 잘 작동하지만 다음에 동일한 함수를 호출 할 때 아무것도 (빈 문자열)로 바꾸고 싶습니다. "default"문자열 ";;"이 있기 때문에 그렇게 할 수 없습니다. 내가 이전에 사용했던 것입니다. 방금 Enter 키를 누르면 명령이 ";;" 빈 문자열 대신 문자열. 빈 문자열로 어떻게 설정합니까?

비슷한 문제가 검색 / 바꾸기 기능과 관련이 있습니다. 기본적으로, 내가 사용한 마지막 문자열을 기억하고 기본값으로 설정하면 빈 문자열 대신 어떻게 "입력"합니까?

편집하다 :

YoungFrog에 의해 언급 된 Kill-rectangle은 특정 문제를 해결하지만 다른 점을 염두에 두었습니다. 기본적으로 emacs는 입력 한 마지막 값을 기억하고 Enter 키를 누를 때 "기본값"으로 사용합니다. 함수를 처음 사용하기 전에 "default"를 실제 기본값으로 지울 수 있습니다. 또 다른 예는 다음과 같습니다.

Dired 모드에서 'Mx rgrep'인 경우 3 개의 입력을 요청합니다.

1) 검색 대상 : 여기에 입력 한 내용은 다음에 rgrep을 사용할 때 기본값으로 사용됩니다. 누군가 지적했듯이 빈 문자열을 검색하는 것은 의미가 없으므로이 "기본"값을 지우는 것은 실제로 필요하지 않습니다.

2) 다음으로 검색 할 파일을 묻습니다. 실제 기본값은 "all"파일입니다. 다음에 rgrep을 사용할 때 * .txt를 입력하고 검색하면 * .txt가 "default"로 사용됩니다. 이제이 "default"* .txt를 지우고 ";;"을 지우려는 것처럼 원래 기본값 인 "all"로 돌아갑니다. string-rectangle 함수의 "default"는 실제 기본값 인 빈 문자열입니다.

물론 모든 파일에 대한이 특정 문제는 *?를 입력하면 해결 될 수 있습니다. 그러나이 일반적인 문제 가능성은 마지막으로 사용한 값을 기억하는 다른 명령에 남아 있습니다.

3) 다음으로 기본 디렉토리를 묻습니다. 문제 없습니다.

그래서 내가 보는 방식은 emacs가 어떤 명령에서 마지막으로 사용한 값을 기억하여 나를 도울 때마다 (대부분 매우 도움이되는 것으로 생각됩니다) 사용한 적이없는 것처럼 사용 된 값을 지우는 방법이 있어야합니다 전에 명령.

추신 : 나는 여전히 이맥스를 처음 사용하고 있으며, 항상 해결 방법이 있기 때문에 내가 필요한 기능이 필요하지 않습니까?


1
나는 빈 문자열에 대한 기본값을 읽고 교환하는 것이 대부분의 경우 동일한 기능으로 발생하지 않기 때문에 어렵다는 것을 믿습니다. 이 특정한 경우 delete-rectangle에는 옵션입니다.
politza 2016 년

선택한 사각형에 공백을 삽입하려면을 사용할 수 있습니다 clear rectangle.
Kaushal Modi 2016 년

주석 / 설명을 차단하려면 간단히 사용하지 comment-dwim않겠습니까? 또한 검색을 위해 "빈"문자열을 입력하는 것은 의미가 없지만 교체 부분에 빈 문자열을 입력 할 수 있습니다. 빈 문자열을 입력 해야하는 더 많은 예제가 궁금합니다.
Kaushal Modi 2016 년

3
설명을 빨리 보았지만 command 디자인에 문제가있는 것 같습니다 string-rectangle. 빈 문자열이 가능한 입력으로 이해 될 때마다 기본값을 허용하는 것과 달리 입력 할 수있는 방법이 있어야합니다. 명령에 대한 문서 (그리고 소스 코드가 편안하다면)를 자세히 살펴보고 실제로 디자인 결함이 있는지 확인하십시오. 있다고 생각되면 신고하십시오 M-x report-emacs-bug..
Drew

들어 2)당신이 문자 그대로 입력 할 수 있습니다 all약간 다른 인 *: 그것은 일치 .*너무.
npostavs

답변:


3

C-x r t( string-rectangle)를 사용 하지 말고 C-x r k( kill-rectangle)를 대신 사용하십시오.


1
나는 일반적인 사례 (제목의 질문)가 (일반적인) 대답을 인정하지 않기 때문에 주어진 특정 예에만 대답했습니다. 여전히 C-j() 대신에 RETido-mode와 같은 경우에 도움이 될 수 있다고 언급하고 싶습니다 .
YoungFrog

3

일반적인 경우 원하는 것을 달성 할 수 없습니다. Emacs의 여러 유틸리티 및 모드는 읽기 완료 히스토리를 한 위치가 아닌 다른 변수에 저장하기 때문입니다. 이력 변수를 nil( C-x r t예를 들어로 (setq string-rectangle-history nil)) 수동으로 설정할 수 있지만 크기가 조정되지 않습니다. 코드를 읽지 않고 히스토리 변수의 이름을 발견하는 것도 쉽지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.