簡體   English   中英

我可以將一些輸出寫入當前文檔,而將一些輸出寫入shell輸出嗎?

[英]Can I write some output to the current document and some to shell output?

我正在使用gedit並嘗試將其摔入真正的IDE中。 我想要的是映射ctrl shift | 當文件類型為“ text / html”時運行我的tidy工具,當文件類型為“ text / x-python”時運行我的autopep8工具。

事實證明(我認為這是一個錯誤),gedit不在乎您指定的文件類型。 如果您有組合鍵設置,則無論文件類型是否匹配,它都會運行一個工具。 相關,但可能不是錯誤,我只能將鍵盤快捷鍵設置為一個外部工具。

因此,我編寫了一個可在ctrl shift上運行的外部工具 並運行autopep8如果該文件是Python和tidy ,如果該文件是HTML:

#!/bin/sh
# [Gedit Tool]
# Save-files=document
# Shortcut=<Primary><Shift>bar
# Output=replace-document
# Name=Tidy by Filetype
# Applicability=all
# Input=document

if [ $GEDIT_CURRENT_DOCUMENT_TYPE = "text/x-python" ]; then
    autopep8 - -v -a
elif [ $GEDIT_CURRENT_DOCUMENT_TYPE = "text/html" ]; then 
    #-i auto indents, -w 80 wrap at 80 chars, -c replace font tags w/CSS
    exec tidy -utf8 -i -w 80 -c "$GEDIT_CURRENT_DOCUMENT_NAME"
elif [ $GEDIT_CURRENT_DOCUMENT_TYPE = "text/css" ]; then
    #TK CSS tidy
else 
    echo "This seems to be " $GEDIT_CURRENT_DOCUMENT_TYPE " I don't know how to tidy that."
fi

倒數第二行是讓我傷心的那行。 如果我不為過去定義的任何行動else它只是刪除我現有的文檔。 如果我運行ctrl shift | 並且文件類型不是我要考慮的一種,我希望它向外殼輸出報告文件類型,而不是用

這似乎是application / x-shellscript我不知道如何整理。

有沒有一種方法可以編寫我的工具,以便我可以將一些輸出寫入外殼程序並將某些輸出寫入文檔?

沒有嘗試使gedit變得更有用的經驗,我確實發現了這一點: https ://wiki.gnome.org/Apps/Gedit/Plugins/ExternalTools?action=AttachFile&do = view&target=target-external-tools-manager-with-gedit- 3.png

這里的關鍵構造是

echo "..." > /dev/stderr

如果mime類型不匹配,至少可以阻止您破壞文件的內容,但是我不確定文件的打印位置(希望在合理的地方)。

編輯(以獲得更完整的答案):

您還需要添加cat $GEDIT_CURRENT_DOCUMENT_NAME目錄,以使用其自身替換文件內容。 @ markku-k指出了這一點(謝謝!)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM