명령 행에서 텍스트 파일을 편집 할 수있는 응용 프로그램 열기


9

OSX에 TextWrangler 를 설치할 때 edit명령 줄에서 모든 텍스트 파일을 열 수있는 명령도 있습니다.

Ubuntu에서 비슷한 기능을 사용하여 터미널에서 명령을 입력하여 특정 텍스트 편집기 (예 : Kate)에서 파일을 열 수 있습니까?

답변:


11

를 사용하여 파일을 열려면 kate다음과 같이 실행할 수 있습니다.

kate filename

다음과 같은 메시지가 표시 될 수 있습니다.

kate(3702)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing  "/usr/share/mime/magic"
kate(3702)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing  "/home/user/.local/share/mime/magic"
Bus::open: Can not get ibus-daemon's address. 
IBusInputContext::createInputContext: no connection to ibus-daemon

이러한 메시지를 제거하려면 오류 출력 스트림을 /dev/null다음으로 리디렉션하십시오 .

kate filename 2>/dev/null

동일한 터미널을 계속 사용 &하려면 명령 뒤에 after를 추가하십시오 .

kate filename 2>/dev/null &

파일 edit filename을 열어 실행 하려면 ~/.bashrc파일에 bash 함수를 작성할 수 있습니다 . ~/.bashrc파일에 다음 코드를 추가 하십시오.

edit() { kate "$@" 2>/dev/null & }

이것은 내가 찾던 것에 더 가깝습니다. 실제로 명령을 실행 해 주셔서 감사하며 가장 확실한 솔루션으로 발생할 수있는 문제를 확인하십시오. 내가 할 일은 edit filename전체 명령 을 실행하기 위해 호출 할 수있는 새로운 명령을 만드는 것 kate filename 2>/dev/null &입니다.
Juan A. Navarro

1
@ JUAN : 나는 그 일을위한 예를 추가했습니다. 은 $@당신이 행 번호 등의 추가 옵션을 통과해야하는 경우에 필요하다. 대안으로이 기능을 지원하도록 조정할 수 있습니다 edit filename linenumber.
Lekensteyn

당신은 당신의 대답에 버그가 있고 그것을 편집 할 수없는 것 같습니다. 따옴표를 잊어 버렸습니다 $@(이어야 함 "$@"). 공백이 포함 된 파일 이름으로 스크립트가 실패합니다.
Scott Severance

18

다음과 같은 편집기를 열 수 있습니다 (내 지식까지).

NAME_OF_EDITOR FILENAME

gedit filename(우분투)
kate filename(쿠분투)
bluefish filename
kwrite filename
libreoffice filename

같은 방법으로
firefox filename.html
chrome filename.html
banshee filename.ogg또는 .mp3 웹 페이지를 열 수도 있습니다

여기서 경향을 볼 수 있습니다 ..


실제로 gedit filename &그렇지 않으면 터미널을 사용할 수없는 상태로 유지 해야합니다 . 같은 일이 발생 kate하지만 &터미널에 디버그 (또는 다른 정보)를 뱉기 시작하기 때문에 터미널을 사용할 수 없게 만듭니다. &결국 을 피하는 방법이 있습니까? editTextWrangler에서 와 같이 ?
Juan A. Navarro

Lekensteyn 의 답변은 내가 찾고있는 것에 (적어도 더 가깝습니다).
Juan A. Navarro

1
사실, & 를 추가 하거나 2> / dev / null 을 추가 하여 계속 사용하려는 경우 콘솔에 오류와 내용을 출력하지 않을 수 있습니다.
Luis Alvarado

3

editUbuntu 에서 명령을 사용하는 것을 선호한다면 Kate와 같이 좋아하는 편집기의 별칭을 정의 할 수도 있습니다.

alias edit='kate'

이 별칭을 영구적으로 만들려면이 행을에 추가하십시오 ~/.bash_aliases.


2

그래픽 환경이없고 콘솔에서 실행중인 경우 언제든지 다음을 사용할 수 있습니다.

vim foo.txt
nano bar.txt
pico foo.html
emacs bar.xml
...

그래서 첫 번째 대답으로 넘어갑니다.


1
창 환경 내에서도 VT100 (x) emacs를 원하는 경우 "emacs -nw"또는 "xemacs -nw"
barrycarter

1

원하는 편집기에 CLI 명령을 사용하여 파일을 열고 편집 할 수 있습니다 (예 gedit: gnome 또는 kateKDE).

그냥 입력하십시오 :

kate filename

kate에서 파일을 열려면


1

때로는 mcedit가 선호하는 편집기 인 클래식 터미널을 사용하고 종종 프로그램 / 스크립트를 수정하기 위해 줄 번호를 전달하는 것을 좋아합니다.

그것들을 균일하게 부르기 edit source.sh 123위해이 스크립트를 작성했습니다.이 스크립트는 경로에 '편집'으로 배치되었습니다.

#!/bin/bash
#   - edit a file using mcedit or gedit, depending on X11 or console invoking.
#   - jump to specified line, if any.

Xedit=/usr/bin/gedit

if [[ $TERM = "linux" ]]; then
    if [ $# -eq 1 ]; then
        mcedit $1
        else if [ $# -eq 2 ]; then
#           echo "edit invoked\t/usr/bin/mcedit +$2 $1" >> /tmp/edit.log
            /usr/bin/mcedit +$2 $1
            else if [ $# -eq 0 ]; then
                /usr/bin/mcedit
            fi
        fi
    fi
    else if [[ $TERM = "xterm" ]]; then
        # scheint nicht zu helfen
        # LANGUAGE=C
        export LC_ALL=C
        if [ $# -eq 1 ]; then
            $Xedit $1
            else if [ $# -eq 2 ]; then
#               echo "edit invoked\t/usr/bin/scite -open:$1 -goto:$2" >> /tmp/edit.log
                # $Xedit -open:$1 -goto:$2
                $Xedit +$2 $1 
                else if [ $# -eq 0 ]; then
                    $Xedit
                fi
            fi
        fi
    fi
fi

gedit가 아닌 scite를 그래픽 편집기로 사용했을 때의 오래된 디버그 지침을 사용하십시오.

이 방법으로 작동하지 않는 무언가는 다음과 같은 여러 파일을 여는 것입니다.

 edit *.html

하나 이상의 html-File이 있으면 패턴이 여러 파일로 확장됩니다.

유효한 호출은 다음과 같습니다.

 edit 
 edit foofile 
 edit foofile 123

X 또는 터미널에서.

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