SciTE est un éditeur multiplatforme léger et hautement configurable qui fonctionne sous Linux/Win/Mac (contrairement à notepad++). Ma productivité acquise sous Linux est conservée quand je passe sur Windows.
J'utilise extSciTE
comme mémo pour réinstaller cet éditeur sur une nouvelle machine
et rapidement ajouter quelques scripts très pratiques pour un usage quotidien.
extSciTE
a pour vocation de fonctionner avec le programme SciTE
standard.
sudo apt-get install git
sudo apt-get install lua5.1
sudo apt-get install liblua5.1-socket2
(ousudo apt-get install lua-socket
)sudo apt-get install liblua5.1-socket-dev
sudo apt-get install lua5.1-filesystem
sudo apt-get install lua5.1-sql-sqlite3
( ousudo apt-get install lua5.1-sql-sqlite3-2
selon version)Lancer la console et exécuter la commande
lua
: un prompt s'affiche invitant à saisir du code lua. Tester le codesocket = require "socket";print(socket._VERSION);
sans génèrer une erreur dans la console.sudo apt-get install scite
Télécharger https://github.com/ami44/extSciTE.git dans
/home/myloginname/extSciTE
:cd /home/myloginname && git clone https://github.com/ami44/extSciTE.git
Exécuter SciTE :
Editer
.SciTEUser.properties
(menu --> Options --> Open User Options File) pour ajouter des options spécifiques àextman.lua
:-- -*- coding: utf-8 - # ------------------------------------------------------------------------ # extman.lua # ------------------------------------------------------------------------ # Indiquer à ``extman.lua`` où se trouve les scripts lua à charger ext.lua.directory=/home/myloginname/extSciTE/extman/scite_lua # si on modifie le fichier ``SciTEStartup.lua`` alors SciTE le relancera automatique ( cf aussi SHIFT+CTRL+R) ext.lua.auto.reload=1 # option utile pour le développement ext.lua.debug.traceback=1 # (facultatif) Emplacement spécifique du script de chargement si on n'utilise pas le fichier ``SciTEStartup.lua`` par défaut #~ ext.lua.startup.script=$(SciteUserHome)/SciTEStartup.lua
Editer le script de chargement principal
SciTEStartup.lua
(menu --> Options --> Open Lua Startup Scripts) et ajouter-- -*- coding: utf-8 - -- ------------------------------------------------------------------------------------------------------- -- Extension -- charger les extensions *avant* d'exécuter extman.lua -- ------------------------------------------------------------------------------------------------------- -- corriger le chemin des extensions (à revoir) -- OLD UBUNTU : package.path = package.path..';/usr/share/lua/5.1/?.lua' -- OLD UBUNTU : package.cpath = package.path..';/usr/lib/lua/5.1/?.so' package.path = package.path..';/usr/lib/x86_64-linux-gnu/lua/5.1/?.lua;/usr/share/lua/5.1/?.lua' package.cpath = package.path..';/usr/lib/x86_64-linux-gnu/lua/5.1/?.so;/usr/share/lua/5.1/?.so' -- charger les extensions io = require "io"; socket = require "socket"; mime = require "mime"; ltn12 = require "ltn12"; http = require "socket.http"; url = require "socket.url"; ftp = require "socket.ftp"; tp = require "socket.tp"; lfs = require "lfs"; require "luasql.sqlite3"; -- ------------------------------------------------------------------------------------------------------- -- Si SciTE installé avec apt-get alors ``ext.lua.directory`` retourne ``$HOME/scite_lua`` -- DONC CORRIGER EMPLACEMENT POUR ExtSciTE -- ------------------------------------------------------------------------------------------------------- path = '/home/myloginname/extSciTE/extman/scite_lua' props['ext.lua.directory'] = path -- ------------------------------------------------------------------------------------------------------- -- extman.lua -- ce script exécutera ensuite les scripts présents dans le répertoire extman/scite_lua -- ------------------------------------------------------------------------------------------------------- dofile "/home/myloginname/extSciTE/extman/extman.lua"
Redémarrer SciTE et constater dans la console que les modules de extSciTE se chargent :
installer/démarrer nodeSciTE (cf ci-dessous)
suite : extScite est la base pour ensuite utiliser scipm (
cd /mount/usb/myScipm && scipm build
)
Installer luaforwindows : http://code.google.com/p/luaforwindows/ (inclus luarock) et s'assurer que lua51.dll est visible dans %PATH%
Installer tree (dans le %PATH%) : http://gnuwin32.sourceforge.net/packages/tree.htm
Lancer la console et exécuter la commande
lua
: un prompt s'affiche invitant à saisir du code lua. Tester le codesocket = require "socket";print(socket._VERSION);
sans génèrer une erreur dans la console. Si erreur alors corriger les variables d'environnement :- Windows XP : Démarrer --> Panneau de configuration --> Système --> Avancé --> Variables d'environnement --> Variables système
- LUA_CPATH =
C:\Program Files\Lua\5.1\clibs\?.dll
- LUA_PATH =
;C:\Program Files\Lua\5.1\lua\?.luac;C:\Program Files\Lua\5.1\lua\?.lua
- (info) installer les modules complémentaires via luarocks
- si proxy :
set http_proxy=http://login:mdp@server:1234
luarocks install luaxxxxxx
- si proxy :
Installer SciTE ( http://www.scintilla.org/SciTEDownload.html ) dans le répertoire
C:\Documents and Settings\myloginname\wscite
et ajouter le raccourci de SciTE sur le bureau + barre de lancement rapide (explorer --> SciTE.exe --> clic droit --> Envoyer vers --> Bureau (créer un raccourci))Télécharger https://github.com/ami44/extSciTE.git dans
C:\Documents and Settings\myloginname\extSciTE
(télécharger le zip)Exécuter SciTE :
Editer
SciTEUser.properties
(menu --> Options --> Open User Options File) pour ajouter des options spécifiques àextman.lua
:-- -*- coding: utf-8 - # ------------------------------------------------------------------------ # extman.lua # ------------------------------------------------------------------------ # Indiquer à ``extman.lua`` où se trouve les scripts lua à charger ext.lua.directory=C:\Documents and Settings\myloginname\extSciTE\extman\scite_lua # si on modifie le fichier ``SciTEStartup.lua`` alors SciTE le relancera automatique ( cf aussi SHIFT+CTRL+R) ext.lua.auto.reload=1 # option utile pour le développement ext.lua.debug.traceback=1 # (facultatif) Emplacement spécifique du script de chargement si on n'utilise pas le fichier ``SciTEStartup.lua`` par défaut #~ ext.lua.startup.script=$(SciteUserHome)/SciTEStartup.lua
Editer le script de chargement principal
SciTEStartup.lua
(menu --> Options --> Open Lua Startup Scripts) et ajouter-- -*- coding: utf-8 - -- ------------------------------------------------------------------------------------------------------- -- Extension -- charger les extensions *avant* d'exécuter extman.lua -- ------------------------------------------------------------------------------------------------------- io = require "io"; socket = require "socket"; mime = require "mime"; ltn12 = require "ltn12"; http = require "socket.http"; url = require "socket.url"; ftp = require "socket.ftp"; tp = require "socket.tp"; lfs = require "lfs"; require "luasql.sqlite3"; -- ------------------------------------------------------------------------------------------------------- -- extman.lua -- ce script exécutera ensuite les scripts présents dans le répertoire extman/scite_lua -- ------------------------------------------------------------------------------------------------------- dofile "C:\\Documents and Settings\\myloginname\\extSciTE\\extman\\extman.lua"
Redémarrer SciTE et constater dans la console que les modules de extSciTE se chargent :
Si la console SciTE indique des problèmes avec lua, la solution radicale est la suivante :
- Copier tous les fichiers du répertoire
C:\PathToLua\clibs\*
danswscite
.- Copier le répertoire de
C:\PathToLua\lua5.1.dll
etC:\PathToLua\lua51.dll
danswscite
.- Copier le répertoire de
C:\PathToLua\lua
danswscite
.- Redémarrer SciTE
- installer/démarrer nodeSciTE (cf ci-dessous)
- suite : extScite est la base pour ensuite utiliser scipm (
cd F:\myScipm && scipm build
)
Emplacement du script SciTEStartup.lua
: menu --> Options --> Open Lua Startup Scripts
Le script SciTEStartup.lua
est exécuté au démarrage de SciTE.
On exécute tout de suite le script extman.lua
(http://lua-users.org/wiki/SciteExtMan) qui étend les
fonctionnalités lua de SciTE. J'ai amélioré extman.lua
en ajoutant la méthode scite_OnKey()
.
Le script extman.lua
se charge ensuite d'exécuter les scripts présents dans
le répertoire extSciTE/extman/scite_lua (cf option ext.lua.directory
). Il ajoute aussi un raccourci clavier
SHIFT+CTRL+R qui permet de recharger le script lua en cours d'édition (Cf menu --> Tools --> Reload Script ).
Si on édite le fichier SciTEStartup.lua
alors on relancera extman.lua
et les autres scripts en cascade.
Note
nodeSciTE n'analyse que les scripts *.js
pour le moment
Compagnon de SciTE en charge d'analyser le code en cours d'édition (jslint...)
installer
extSciTE
au préalableinstaller nodejs & npm : http://nodejs.org/download :
Linux :
- sudo
apt-get install nodejs
- sudo
Windows :
si administrateur : télécharger node-vX.Y-x86.msi (installe node et npm en même temps)
si non-administrateur (si échec avec msi) , il faut installer node puis npm séparément :
installer node :
- télécharger node.exe depuis http://nodejs.org/download dans
C:\Documents and Settings\myloginname\node
- mettre à jour la variable d'environnement PATH vers
C:\Documents and Settings\myloginname\node
- dans la console tester
node -v
- télécharger node.exe depuis http://nodejs.org/download dans
installer npm ( https://npmjs.org/doc/README.html) :
- télécharger fichier npm-X.Y.Z.zip à cette adresse http://npmjs.org/dist/
- extraire le contenu dans
C:\Documents and Settings\myloginname\node
- dans la console tester
npm -v
ouvrir la console
linux :
cd "/home/myloginname/extSciTE/nodeSciTE"
windows :
cd "C:\Documents and Settings\myloginname\extSciTE\nodeSciTE"
npm install
@revoir : ne fonctionne pas !!! corriger
extSciTE\nodeSciTE\node_modules\jslint\lib\jslint.js
et corrigermaxerr : 1000
enmaxerr : 10000
exécuter nodeSciTE (lire ci-après)
Manuel :
linux :
- ouvrir la console bash
cd "/home/myloginname/extSciTE/nodeSciTE"
node nodeSciTE.js
windows :
- ouvrir la console
cmd
cd "C:\Documents and Settings\myloginname\extSciTE\nodeSciTE"
nodeSciTE.bat
ounode nodeSciTE.js
Automatique, Lancer le serveur nodeSciTE au démarrage de votre session :
- windows : @todo
- linux : @todo
Le serveur nodeSciTE écoute par défaut le port 3891 en local.
Si on corrige en dur le port dans le fichier extSciTE/nodeSciTE/nodeSciTE.js
ou que ce service est sur un autre serveur, alors éditer le fichier SciTEUser.properties
(menu --> Options --> Open User Options File) et ajouter ces options :
# ------------------------------------------------------------------------ # nodeSciTE # ------------------------------------------------------------------------ extscite.nodeSciTE.host=http://127.0.0.1 extscite.nodeSciTE.port=9999
liens utiles :
- http://ensiwiki.ensimag.fr/index.php/SciTE
- http://ensiwiki.ensimag.fr/index.php/Configuration_De_SciTE
- http://www.cloudconnected.fr/2005/11/11/scite-l-editeur-indispensable/
- http://www.distasis.com/cpp/scitetip.htm
- http://www.scintilla.org/SciTEDoc.html
- http://www.scintilla.org/SciTELua.html
- https://code.google.com/p/scite-files/w/list
- http://pgl.yoyo.org/scite/bits/SciTEGlobal.properties
- http://lua-users.org/wiki/FindPage (chercher
scite
)- http://www.scintilla.org/ScintillaDoc.html
- http://scite-files.googlecode.com/svn-history/trunk/extras/SciTELua.api
- http://www.scintilla.org/PaneAPI.html (api scintilla)
- http://scite-ru.googlecode.com/svn/trunk/pack/tools/ (plein d'idées lua)
- https://groups.google.com/forum/?fromgroups#!forum/scite-interest
Editer SciTEUser.properties
(menu --> Options --> Open User Options File) :
buffers=30 save.session=1 check.if.already.open=1 open.dialog.in.file.directory=1 find.replace.advanced=1 code.page=65001 output.code.page=65001 properties.directory.enable=1 title.full.path=1 title.show.buffers=1 pathbar.visible=1 save.position=1 line.margin.visible=1 highlight.current.word=1 find.files=* tabsize=4 indent.size=4 use.tabs=0 strip.trailing.spaces=1 # The load.on.activate property causes SciTE to check whether the current file has been updated by another process whenever it is activated. This is useful when another editor such as a WYSIWYG HTML editor, is being used in conjunction with SciTE. # When both this and load.on.activate are set to 1, SciTE will ask if you really want to reload the modified file, giving you the chance to keep the file as it is. By default this property is disabled, causing SciTE to reload the file without bothering you. load.on.activate=1 are.you.sure.on.reload=1 # http://www.cloudconnected.fr/2005/11/11/scite-l-editeur-indispensable/ # Par défaut, les touches Home et End déplacent le curseur au début et à la fin de la ligne logique. Pour changer se comportement afin qu’elles déplacent le curseur sur la ligne visuelle, c’est la propriété : wrap.aware.home.end.keys=1 if PLAT_GTK all.files=All Files (*)|*|Hidden Files (.*)|.*| open.filter=\ $(all.files) # charger le fichier markdown.properties # https://groups.google.com/forum/?fromgroups=#!topic/scite-interest/MZFRd161I6Y # https://github.com/vadmium/etc/blob/master/scite/markdown.properties import markdown # Status Bar # $(StatusMsg) est utilisé par les modules pour afficher des alertes diverses ( props["StatusMsg"]='Mon message'; ) # impérativement maintenir $(LineNumber) et $(ColumnNumber) dans statusbar.text.1 pour aider à la mise à jour du texte dans $(StatusMsg) # rappel : seul window autorise statusbar.number > 1 (cliquer sur le status pour passer d'un texte à l'autre) mais pas très utile statusbar.visible=1 statusbar.number=1 statusbar.text.1=li=$(LineNumber) co=$(ColumnNumber) $(StatusMsg)
Facultatif : installer la police consolas pour la console :
- prélalble : vérifier que la poilice n'est pas déjà présente dans C:WindowsFonts
- télécharger la font consolas (ici ou là ) . Si win et problème de droit alors copier directement dans
C:\Windows\Fonts
.- Editer le fichier
SciTEGlobal.properties
et corrigerfont.small=font:Verdana,size:8
parfont.small=font:Consolas,size:8
.- Le
$(font.small)
sera ensuite interprété par le fichierothers.properties
Todo :
- tester scintillua ( http://foicica.com/scintillua/download, http://foicica.com/scintillua/api/lexer.html#Styling.Tokens )
- implanter http://scite-ru.googlecode.com/svn/trunk/pack/tools/svn_menu.lua (et voir les autres scripts lua)
- revoir 016outputcolor.lua ( http://lua-users.org/wiki/SciteColouriseDemo)
- notify-send ( win : http://rodnic.net/notify-send/, linux : sudo apt-get install libnotify-bin )
Note
pour désactiver un module : simplement renommer le fichier sans l'extension .lua
pour ne plus être pris en compte. Pour le réactiver : remettre l'extension .lua
.
Indique que extSciTE est bien chargé
function luasqlrows (connection, sql_statement)
utilisé par030bookmark.lua
.function vardump(value, depth, key)
Permet d'éxécuter code lua présent dans la console. Utilisé par 030bookmark.lua et 040dir.lua.
CTRL+b : affiche les bookmarks dans la console SciTE :
- fichiers ou répertoires préférés ( on peut même définir la ligne à afficher : utile pour descendre à la dernière ligne du fichier apache2/access.log par exemple : initialiser alors à 10000000000 )
- code lua à exécuter ( afficher un message, fonction à lancer ... )
Pour aérer les bookmark, il y a aussi possibilité d'affichers des séparateurs.
Rappel : CTRL+B replace le comportement CTRL+B (Expand abbreviation) par défaut de Scite.
Pour créer/éditer la base sqlite3 : télécharger l'outil sqliteStudio à cette adresse http://sqlitestudio.one.pl
Avec sqliteStudio, créer une base de données dans C:\Documents and Settings\myloginname\bookmark.sqlite3.db
puis créer la table bookmark
avec cette commande sql
CREATE TABLE bookmark ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, label TEXT NOT NULL, FilePath TEXT NULL, FilePathLine INTEGER NOT NULL DEFAULT '0', doStringCode TEXT NULL, isSep INTEGER NOT NULL DEFAULT '0', ordre INTEGER NOT NULL );
Ajouter des bookmarks dans la table bookmark
Pour définir la base de données sqlite3, éditer SciTEUser.properties
(menu --> Options --> Open User Options File) :
# ------------------------------------------------------------------------ # bookmark # ------------------------------------------------------------------------ extscite.bookmark.sqlite3=C:\Documents and Settings\myloginname\bookmark.sqlite3.db
Pour éditer la base de données sqlite3 via une interface web comme adminer (http://www.adminer.org/) préalablement installé sur votre poste de travail SciTEUser.properties
(menu --> Options --> Open User Options File) :
# ------------------------------------------------------------------------ # bookmark # ------------------------------------------------------------------------ extscite.bookmark.sqlite3=C:\Documents and Settings\myloginname\bookmark.sqlite3.db extscite.bookmark.navigateur="C:\\Documents and Settings\\myloginname\\Mes Programmes\\ChromiumPortable\\ChromiumPortable.exe" extscite.bookmark.http=http://127.0.0.1/adminer/?sqlite=&username=root&db=D%3A%5CUtilisateurs%5Cmyloginname%5Cbookmark.sqlite3.db&select=bookmark&modify=1&order%5B0%5D=ordre
Affiche dans la console SciTE tous les fichiers depuis le répertoire du fichier courant.
Usage depuis un fichier ouvert dans SciTE : CTRL+SHIFT+o
Usage depuis le module bookmark :
Créer un bookmark (cf section 030bookmark.lua ci-dessus) et dans la colonnedoStringCode
appeller la fonctionprintListFileInDirCommun('C:\\BitNami\\wappstack-5.4.9-0\\apache2\\htdocs\\qcm')
Affiche les dossiers et fichiers présent depuis un répertoire sous forme d'arborescence. Nécessite l'utilitaire tree
dans le path (installé par défaut sous linux, à installer sous windows : http://gnuwin32.sourceforge.net/packages/tree.htm).
Usage depuis un fichier ouvert dans SciTE : Ctrl+Shift+T
Depuis le module bookmark :
Créer un bookmark (cf section 030bookmark.lua ci-dessus) et dans la colonnedoStringCode
appeller la fonctionprintTree('C:\\BitNami\\wappstack-5.4.9-0\\apache2\\htdocs\\qcm')
ou avec des options commeprintTree('C:\\BitNami\\wappstack-5.4.9-0\\apache2\\htdocs\\qcm', '-a -L 2')
(-a == fichier hidden, -L 2== afficher 2 niveaux uniquement, cf options de tree http://www.computerhope.com/unix/tree.htm ou http://linux.die.net/man/1/tree )
CTRL+SHIFT+i : affiche dans la console SciTE les infos du fichiers pour copier/coller
CTRL+7 : copier le contenu de la console dans un fichier console.txt
et ouvrir ce fichier dans SciTE.
CTRL+6 : ouvrir l'explorateur de fichier
CTRL+8 : A utiliser avec font monospace (CTRL+F11)
source : http://lua-users.org/wiki/SciteTicTacToe
CTRL+9 : crazy elisa
source : http://lua-users.org/wiki/SciteElizaClassic
Afficher tous les caractères spéciaux pour faciliter copier/coller
Usage : Menu > Tools > ASCII table
source : http://lua-users.org/wiki/SciteAsciiTable
Note
version alpha, très instable ;-)
Scite envoie le contenu du code à analyser au serveur nodeSciTE ( jslint, etc ... ). Afficher le résultat sous forme d'annotation dans SciTE :
Voir la section ci-dessus nodeSciTE pour installer et démarrer ce serveur.
Enjoy !