-
Afficher l’historique des commandes commençant par une certaine chaîne de caractères :
Normalement quand on tape « Up » ou « Down », ça affiche la dernière ligne de l’historique
Si vous voulez qu’en tapant par exemple « xemacs » puis « Up » ça vous affiche les dernières commandes commençant par xemacs, il faut ajouter dans votre fichier .inputrc :
« \e[A »: history-search-backward
« \e[B »: history-search-forwardou alors, dans votre .bashrc
bind ‘ »\e[A »: history-search-backward’
bind ‘ »\e[B »: history-search-forward’L’inconvénient c’est qu’en faisant ça, vous perdez les commandes classiques « previous-history » et « next-history ». Il y a deux solutions
1) assigner ces commandes aux touches PgUp et Pgdown
« \e[5~ »: previous-history
« \e[6~ »: next-history2) assigner les history-search aux touches PgUp et Pgdown
« \e[5~ »: history-search-backward
« \e[6~ »: history-search-forward - Xemacs :
1) Avec un fichier qui contient plusieurs routines Fortran, ouvrir F90 dans la barre de menu xemacs, puis cliquer sur « Add Imenu Menu ». Ça crée un onglet F90-Imenu dans la barre de menu, qui permet d’aller directement au début de chaque routine (il faut aller dans « procedures » de l’onglet imenu). On peut aussi ajouter le imenu automatiquement en mettant (f90-add-imenu-menu) dans le .xemacs/custom.el
2) Il y a une option pour mettre les mots clé en majuscules automatiquement : f90-auto-keyword-case ‘upcase-word
et on peut dire a xemacs de mettre tous les mots-clés en majuscules quand il ouvre le fichier : f90-auto-keyword-case ‘upcase-word
3) Il y a une option pour couper les lignes longues automatiquement : (auto-fill-mode 1) , et le nombre de colonnes maximum pour la coupure est défini par fill-column 80
4) Il y a aussi la possibilité d’utiliser des abbréviations, par exemple, on `;i puis espace, ça remplace par INTEGER : (abbrev-mode 1). Pour avoir la liste des abbréviations : ALT+X puis f90-abbrev-help. On peut les redéfinir dans le fichier ./xemacs/custom.el. J’ai remplacé l’accent grave par le ; et j’en ai ajouté quelques unes, notamment le ;w6 pour write(6,*).Voici ce que j’ai mis dans mon custom.el :
(setq f90-mode-hook
‘(lambda ()
( setq f90-auto-keyword-case ‘upcase-word ; met les mots-clés en majuscules
fill-column 80 ; la taille maximum des lignes pour faire les coupures
)
(f90-change-keywords f90-auto-keyword-case) ; met tous les mots-clés fortran en majuscule à l’ouverture du fichier
(abbrev-mode 1) ; mode abbreviation
(auto-fill-mode 1) ; coupures de lignes automatiques
(f90-add-imenu-menu)
))(define-abbrev-table ‘f90-mode-abbrev-table ‘(
(« ;w » « write » )
(« ;w6 » « write(6,*) » )
(« ;t » « then » )
(« ;e » « else » )
(« ;ed » « end do » )
(« ;ei » « end if » )
(« ;dp » « double precision » )
(« ;mo » « module » )
(« ;it » « intent » )
(« ;ey » « entry » )
(« ;eli » « else if » )
(« ;r » « real » )
(« ;ex » « external » )
(« ;tr » « .true. » )
(« ;pu » « public » )
(« ;in » « include » )
(« ;im » « implicit none » )
(« ;pr » « print » )
(« ;fa » « .false. » )
(« ;eq » « equivalence » )
(« ;i » « integer » )
(« ;bd » « block data » )
(« ;po » « pointer » )
(« ;as » « assignment » )
(« ;pm » « program » )
(« ;el » « else » )
(« ;ba » « backspace » )
(« ;wr » « write » )
(« ;if » « interface » )
(« ;su » « subroutine » )
(« ;lo » « logical » )
(« ;c » « character » )
(« ;pi » « private » )
(« ;dw » « do while » )
(« ;al » « allocate » )
(« ;ta » « target » )
(« ;sq » « sequence » )
(« ;wh » « where » )
(« ;pa » « parameter » )
(« ;op » « optional » )
(« ;ab » « allocatable » )
(« ;rw » « rewind » )
(« ;se » « select » )
(« ;di » « dimension » )
(« ;cy » « cycle » )
(« ;rt » « return » )
(« ;cx » « complex » )
(« ;df » « define » )
(« ;de » « deallocate » )
(« ;nu » « nullify » )
(« ;cn » « contains » )
(« ;cm » « common » )
(« ;elw » « elsewhere » )
(« ;cl » « close » )
(« ;fu » « function » )
(« ;rc » « recursive » )
(« ;fo » « format » )
(« ;fl » « forall » )
(« ;na » « namelist » )
(« ;t » « type » )
))Pour les abbréviations, on peut faire la même chose pour Latex, par exemple :
(define-abbrev-table ‘LaTeX-mode-abbrev-table nil)
(add-hook ‘LaTeX-mode-hook
(lambda ()
(setq local-abbrev-table LaTeX-mode-abbrev-table)
(abbrev-mode 1)
)
)(define-abbrev-table ‘LaTeX-mode-abbrev-table
‘(
(« ;a » « \\alpha »)
(« ;be » « \\begin{equation}\\end{equation} »)
))