External Tools Plugin Command Collection
Contents
-
External Tools Plugin Command Collection
- Check Website Links (commandline tool)
- Check Website Links (GUI)
- Code Snippets
- Comparing Files
- Directory listing
- Environmet Variables listing
- Execute Buffer
- Java compile and run
- C compile and run
- Lorem Ipsum Text
- Octave
- PHP Code Formating
- Rake
- Rename Files
- Ruby Execute
- Search/ Replace in Files
- Validate/ Optimize CSS
- Validate/ Reformat XHTML Code
- Validate/ Reformat XML Code
- Validate PHP Code
- Validate Python Code
- Compile and View LilyPond Scores
- Grepall
- Format XML on an unsaved document
- File Properties
- Beautify HTML
- Add First Google Result as Markdown Link
- Source Code Automatic Formatter
- Grep on project
This page contains an overview of the of third party commands for the External Tools Plugin that shipped with gedit. If you have written a command for the External Tools Plugin you can add it yourself here or send it via email to bart neeneenee de. The snippet must contain: headline, language, requirements, menu name, description, command, input, output and applicability. You can learn more about the External Tools Plugin at the gedit user manual.
Check Website Links (commandline tool)
Language: Any
Requires: Linkchecker (commandline tool), Zenity
Menu Name: Check Links...
Description: Check for broken Links of a Website
#!/bin/sh exec linkchecker `zenity --entry --title="Links prüfen" --width="500" --height="150" --text="Enter the URL to validate:\n " --entry-text "http://www." ` &
Input: None
Output: Display in bottom pane
Applicability: All documents
Check Website Links (GUI)
Language: Any
Requires: gURLchecker, Zenity
Menu Name: Check for broken Links of a Website
Description: Validate Links of a Website
#!/bin/sh exec gurlchecker `zenity --entry --title="Links prüfen" --width="500" --height="150" --text="Enter the URL to validate:\n " --entry-text "http://www." ` &
Input: None
Output: Display in bottom pane
Applicability: All documents
Code Snippets
Language: Any
Requires: pySnippet
Menu Name: Code Snippets
Description: Insert Code Snippets
#!/bin/sh python /usr/bin/pysnippet.py &
Input: None
Output: Display in bottom pane
Applicability: All documents
Comparing Files
Language: Any
Requires: Meld, Zenity
Menu Name: Compare With...
Description: Compare current document with another document
#!/bin/sh TITLE="Compare With..." TEXT="Compare $GEDIT_CURRENT_DOCUMENT_NAME with:" BROWSE=" browse..." FILE= while [ -z "$FILE" ]; do FILE=`zenity --list --title="$TITLE" --text="$TEXT" --width=640 --height=320 --column=Documents $GEDIT_DOCUMENTS_PATH "$BROWSE"` if [ "$FILE" == "$BROWSE" ]; then FILE=`zenity --file-selection --title="$TITLE" --filename="$GEDIT_CURRENT_DOCUMENT_DIR/"` elif [ -z "$FILE" ]; then exit fi done meld "$GEDIT_CURRENT_DOCUMENT_DIR/$GEDIT_CURRENT_DOCUMENT_NAME" "$FILE" &
Input: Nothing
Output: Display in bottom pane
Applicability: Local files only
Directory listing
Language: Any
Requires: Shell
Menu Name: List current Directory
Description: List the directory of the current document
ls -l -h $GEDIT_CURRENT_DOCUMENT_DIR
Input: Current document
Output: Display in bottom pane
Applicability: All documents
Environmet Variables listing
Language: Any
Requires: Shell Menu Name: List Environmet Variables Description: List the Environmet Variables of the system
env
Input: Current document
Output: Display in bottom pane
Applicability: All documents
Execute Buffer
Language: Any
Requires: python, ruby, whatever interpreter you're using
Menu Name: Execute Buffer [Python]
Description: Runs the interpreter on the current document (no save required) or the selection, if you have one. Great for testing out little things.
#!/bin/sh python /dev/stdin
Input: Current selection (default to document)
Output: Display in bottom pane
Applicability: All documents
Java compile and run
Language: Java
Requires: Java
Menu Name: Java compile and run
Description: Compile the current Java code and execute it
#!/bin/sh cd $GEDIT_CURRENT_DOCUMENT_DIR if javac $GEDIT_CURRENT_DOCUMENT_NAME; then java ${GEDIT_CURRENT_DOCUMENT_NAME%\.java} else echo "Failed to compile" fi
Input: Current document
Output: Display in bottom pane
Applicability: All documents
C compile and run
Language: C
Requires: gcc, xterm
Menu Name: C compile and run
Description: Compile the current C code and execute it
#!/bin/bash gcc $GEDIT_CURRENT_DOCUMENT_NAME -o ${GEDIT_CURRENT_DOCUMENT_NAME%.*} DESU=`echo ${GEDIT_CURRENT_DOCUMENT_NAME}|cut -d "." -f 1` xterm -hold -e ./$DESU --working-directory=$GEDIT_CURRENT_DOCUMENT_DIR
Input: Nothing
Output: Display in bottom pane
Applicability: All documents
Lorem Ipsum Text
Language: Any
Requires: Lorem Ipsum Generator
Menu Name: Lorem Ipsum text...
Description: Create dummy text
#!/bin/sh lorem-ipsum-generator &
Input: Current document
Output: Display in bottom pane
Applicability: All documents
Octave
Language: Octave
Requires: GNU Octave
Menu Name: Octave
Description: Execute the current Octave code
#!/bin/sh octave --silent --norc $GEDIT_CURRENT_DOCUMENT_NAME
Input: Current document
Output: Display in bottom pane
Applicability: All documents
PHP Code Formating
Language: PHP
Requires: PHP, PHP Pear
Menu Name: Reformat PHP code
Description: Reformat the PHP code of the current document
php_beautifier -s4 -l "ArrayNested() IndentStyles(style=bsd) NewLines(before=if:switch:while:for:foreach:function:T_CLASS:return:break,after=T_COMMENT)"
Input: Current document
Output: Create new document
Applicability: All documents
Rake
Language: Ruby on Rails (RoR)
Requires: Ruby on Rails, Ruby, Zenity
Menu Name: Rake Tasks
Description: Run Rake with selected Tasks
#!/bin/sh rake `rake --tasks --silent | cut -d" " -f2 | zenity --list --title="Select rake task" --column="Task"` &
Input: Current document
Output: Display in bottom pane
Applicability: All documents
Rename Files
Language: Any
Requires: PyRenamer
Menu Name: Rename files...
Description: Rename a sequence of files in the current directory
#!/bin/sh pyrenamer --root $GEDIT_CURRENT_DOCUMENT_DIR &
Input: Current document
Output: Display in bottom pane
Applicability: All documents
Ruby Execute
Language: Ruby
Requires: Ruby, Zenity
Menu Name: Ruby Execute
Description: Execute current document with Ruby
#!/bin/sh ruby
Input: Current document
Output: Display in bottom pane
Applicability: All documents
Search/ Replace in Files
Language: Any
Requires: Regexxer
Menu Name: Search/ Replace in files...
Description: Search or Replace in files at the directory of the current document
#!/bin/sh regexxer --hidden --ignore-case --line-number --pattern=$GEDIT_CURRENT_DOCUMENT_NAME $GEDIT_CURRENT_DOCUMENT_DIR &
Input: Current document
Output: Display in bottom pane
Applicability: All documents
Validate/ Optimize CSS
Language: Cascading Stylesheets CSS
Requires: CSStidy, Zenity
Menu Name: Validate/ Optimize CSS...
Description: Validate or optimize the current cascading stylesheet
#!/bin/sh zenity --question --title="Validate/ Optimize CSS" --text="Should the stylesheet file optimized too?" case "$?" in 0) exec csstidy "$GEDIT_CURRENT_DOCUMENT_NAME" --compress_colors=true --lowercase_s=true --optimise_shorthands=true --compress_font-weight=true --merge_selectors=true --template=high --discard_invalid_properties=false "$GEDIT_CURRENT_DOCUMENT_NAME";; 1) exec csstidy "$GEDIT_CURRENT_DOCUMENT_NAME" --compress_colors=true --lowercase_s=true --optimise_shorthands=true --compress_font-weight=true --merge_selectors=true --template=high --discard_invalid_properties=false "/tmp/$GEDIT_CURRENT_DOCUMENT_NAME";; esac
Input: Current document
Output: Display in bottom pane
Applicability: All documents
Validate/ Reformat XHTML Code
Language: XHTML
Requires: Tidy, Zenity
Menu Name: Validate/ Reformat XHTML code
Description: Validate or reformates the current XHTML document
#!/bin/sh zenity --question --title="Validate/ Reformat XHTML" --text="Should the XHTML file be reformated too?" case "$?" in 0) exec tidy -utf8 -i -w 80 -c -q -asxhtml "$GEDIT_CURRENT_DOCUMENT_NAME";; 1) exec tidy -e -utf8 -q "$GEDIT_CURRENT_DOCUMENT_NAME";; esac
Input: Current document
Output: Create new document
Applicability: All documents
Validate/ Reformat XML Code
Language: XML, SVG, X3D
Requires: XMLlint, Zenity
Menu Name: Validate/ Reformat XML code
Description: Validate or reformates the current XML document
#!/bin/sh zenity --question --title="Prüfen auf valides XML" --text="Soll das XML-Dokument auch formatiert werden?" case "$?" in 0) xmllint --postvalid --format --dtdattr $GEDIT_CURRENT_DOCUMENT_DIR/$GEDIT_CURRENT_DOCUMENT_NAME;; 1) xmllint --postvalid --dtdattr --noout $GEDIT_CURRENT_DOCUMENT_DIR/$GEDIT_CURRENT_DOCUMENT_NAME;; esac
Input: Current document
Output: Create new document
Applicability: All documents
Validate PHP Code
Language: PHP
Requires: PHP
Menu Name: Validate PHP code
Description: Validate the PHP code of the current document
php -l
Input: Current document
Output: Display in bottom pane
Applicability: All documents
Validate Python Code
Language: Python
Requires: Python
Menu Name: Validate Python code
Description: Validate the Python code of the current document
python -d
Input: Current document
Output: Display in bottom pane
Applicability: All documents
Compile and View LilyPond Scores
Language: LilyPond
Requires: GNU LilyPond, Evince
Menu Name: LilyPond Compile and View
Description: Compile and View the current LilyPond document. Must have extension '.ly'.
#!/bin/bash # Store the file name in a variable FILE_NAME=$GEDIT_CURRENT_DOCUMENT_NAME # Check if file extension is .ly if [ `echo $FILE_NAME | cut -d "." -f 2` = "ly" ] then #Make LilyPond file lilypond $FILE_NAME DOC_NAME=`echo $FILE_NAME | cut -d "." -f 1` evince $DOC_NAME'.pdf' & fi exit 0
Input: Current document
Output: Display in bottom pane
Applicability: All documents
Grepall
Language: Any
Requires: Grepall
Menu Name: Grepall
Description: Searches for references to the selected text in documents within the current directory with the same extension as the current document. Outputs file name and page number of each reference in the bottom pane.
#!/bin/bash search=`xargs -0 echo` $HOME/bin/grepall -e `echo $GEDIT_CURRENT_DOCUMENT_NAME | cut -d. -f2` "$search"
Input: Current selection
Output: Display in bottom pane
Applicability: All documents
Format XML on an unsaved document
Language: XML
Requires: XMLlint
Menu Name: Format XML code in a saved or unsaved document
Description:
#!/bin/sh xmllint --format -
Input: Current document
Output: Replace current document
Applicability: All documents
File Properties
Language: Any
Requires: Shell
Menu Name: File Properties
Description: Path, size (bytes), date and time for a file. Output like:
/home/pb/junk/f.txt
613 bytes
2010-12-13 15:33:21
#!/bin/bash FILE=$GEDIT_CURRENT_DOCUMENT_NAME if [ $FILE ]; then # have a file been opened yet? echo `pwd`/$FILE # poor mans realpath(1) (rarely installed) echo `ls -l --full-time $FILE | cut -d " " -f 5` bytes time=`ls -l --full-time $FILE | cut -d " " -f 6,7` echo $time | sed 's/\(.*\)\..*/\1/' # cut off fraction of second fi
Input: Current document
Output: Display in bottom pane
Applicability: All documents
Beautify HTML
Language: HTML
Requires: BeautifulSoup
Menu Name: Beautify HTML
Description: Turns nasty HTML into a nicer form. Will attempt to solve all kind of problems, like incorrectly nested tags
import sys from BeautifulSoup import BeautifulSoup text = sys.stdin.read().decode('utf-8') soup = BeautifulSoup(text) print soup.prettify()
Input: Current document
Output: Replace current document
Applicability: HTML
Add First Google Result as Markdown Link
Language: Any
Requires: FirstGooser (modified from Gooser, installation instructions there)
Menu Name: Google for Link
Description: Takes highlighted text and converts to a Markdown-formatted link to the first result in Google (a la the Blogsmith bundle for textmate
#!/bin/sh searchvar=$(cat /dev/stdin) echo -n "[$searchvar](" /home/chase/bin/firstgooser.pl -s "$searchvar" echo -n ")"
Input: Current Selection
Output: Replace Current Selection
Applicability: All documents
Source Code Automatic Formatter
Language: C, C++, C#, and Java
Requires: Artistic Style (astyle) (You will find it in your deposits)
Menu Name: Astyle
Description: Artistic Style is a source code indenter, formatter, and beautifier for the C, C++, C# and Java programming languages. Use it with Gedit !
Attention: Replace [options] by the options that will please you on the following page: http://astyle.sourceforge.net/astyle.html ;
astyle [options] $GEDIT_CURRENT_DOCUMENT_NAME
Exemple: My options for C programs
astyle --style=kr --indent=tab=4 --indent-switches --indent-preprocessor --pad-oper --pad-header --break-closing-brackets --align-pointer=name --lineend=linux $GEDIT_CURRENT_DOCUMENT_NAME
Input: Nothing
Output: Nothing
Applicability: C, C++, C#, Java
Grep on project
Language: Any
Requires: Zenity
Recommends: Git, RVM
Menu Name: Grep on project
Description: Executes grep of given string (selection by default) inside document dir. If it's inside a Git project, then it searches inside base repo dir. It Also looks for RVM, and if it is found, then it also searches inside the active gemset dir. Last version here.
read SELECTION # allow to refine expression EXPRESSION=$(zenity --entry --text='Expression to grep' --entry-text="$SELECTION") # add document dir GREP_PATHS=$GEDIT_CURRENT_DOCUMENT_DIR # try to replace with git project dir PROJ_DIR=$(git rev-parse --show-toplevel 2> /dev/null) if [ ! '' = "$PROJ_DIR" ]; then GREP_PATHS="$PROJ_DIR" fi # try to load gemset and add gemset dir source $HOME/.rvm/scripts/rvm &> /dev/null cd $GEDIT_CURRENT_DOCUMENT_DIR &> /dev/null GEMSET_DIR=$(gem env gemdir) if [ ! '' = "$GEMSET_DIR" ]; then GREP_PATHS="$GREP_PATHS $GEMSET_DIR" fi # some annoying output (to be customized...) EXCLUDES="--exclude-dir=.git --exclude=Makefile --exclude=*~" # clean output for gedit to be able to open file:line references SED_CLEAN="sed 's/\(.*:[0-9]\+:\)\(.*\)/\1 \2/'" GREP_COMMAND="grep -RnwI $EXCLUDES '$EXPRESSION' $GREP_PATHS | $SED_CLEAN " bash -l -c "$GREP_COMMAND" echo echo "--- Searched for '$EXPRESSION' inside:" echo $GREP_PATHS
Applicability: all
Output: output-panel
Input: selection