Aller au menu - Aller au contenu

Profil du membre : natir

Informations générales | Communiquer | Activité sur le site | En savoir plus | Signature | Biographie

Informations générales

"rw- * rwx = 42"
Pas d'avatar
  • Pseudo : natir
  • Groupe : Membres
  • Date d'inscription : Le 12/03/2010
  • Dernière visite : Le 21/05/2012 à 18:03:50
Hors ligne natir est hors ligne
 

Communiquer


Activité sur le site

Nombre de messages : 197
Nombre de tutoriels : 1
Nombre de news : 0

Profil

  • Date de naissance : Le 13/03/1925
  • Age : 87 ans

Signature

#LGDF: zingwai vaincra !

Un programmeur a besoin de 3 chose : un ordinateur, une connexion a un réseaux, et une machine a cafe, mais avec emacs 24 plus besoin de machine a cafe.

mon environement de codage

Écrit depuis un clavier bépo.
 

Biographie

Je vous mets ici tout mon environnement de travaille, .emacs, .bashrc, makefile généraliste

Voila mon .emacs,je crois qu'il est assez bien commentez pour tout question un Mp, je recommande aussi la lecture de EmacsWiki, qui apporte beaucoup d'information, diverse et varier.

Secret (cliquez pour afficher)
Code : Common Lisp
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(find-file-wildcards t)
 '(inhibit-startup-screen t)
 '(pc-selection-mode t nil (pc-select)))
(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 )

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                     Modification Interface                               ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;Modification de la fenetre au lancement
;; (split-window-horizontally)
;; (other-window 1)
;; (split-window-vertically)

;;Affiche le numéro de ligne et de colone
(global-linum-mode t)
(setq column-number-mode t)

;;Nom du buffer en cours dans la barre de titre               
(setq frame-title-format "%b - Emacs")                        
(setq icon-title-format "%b - Emacs")                         

;;----------
;; Couleur
;;---------

;; Definition des couleurs generales
(set-background-color "#333333")
(set-foreground-color "White")
(set-cursor-color "Yellow")

;; Mettre en gras les mots-cles
(set-face-bold-p 'font-lock-keyword-face t)
(set-face-bold-p 'font-lock-type-face t)
(set-face-bold-p 'font-lock-constant-face t)
(set-face-bold-p 'font-lock-function-name-face t)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                        Petit Modification                                ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;Reponse au question toujours une letre
(fset 'yes-or-no-p 'y-or-n-p)

;;Autorise la séléction à l'aide de la touche SHIFT
(custom-set-variables '(pc-selection-mode t nil (pc-select)))

;;Effacement de la selection lorsque qu'un touche et fraper
(custom-set-variables '(pending-delete-mode t t))

;;Pas de message au lancement d'emacs
(setq inhibit-startup-message t)

;; Mise à jour automatique des fichiers qui changent sur disque...
(global-auto-revert-mode 1)

;; Fichiers de sauvegarde centralisés dans un répertoire
(let ((rep-fichiers-secours (expand-file-name "~/.emacs.d/backups")))
  (cond ((featurep 'xemacs)
         (custom-set-variables `(bkup-backup-directory-info
                                 (list (list "." ,rep-fichiers-secours
                                             'full-path))))
         (require-faible 'backup-dir))
        (t ;; Non-xemacs
         (custom-set-variables `(backup-directory-alist
                                 (list (cons "." ,rep-fichiers-secours)))))))

					;Copier coller avec autres applications
(setq x-select-enable-clipboard t)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                         Fonction Interne                                 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; convertit un fichier dos vers unix
(defun dos-unix ()
  "Convertit un fichier dos vers unix"
  (interactive)
  (goto-char (point-min))
  (while (search-forward "\r" nil t)
    (replace-match "")))

;; convertit un fichier unix vers dos
(defun unix-dos ()
  "Convertit un fichier unix vers dos"
  (interactive)
  (goto-char (point-min))
  (while (search-forward "\n" nil t)
    (replace-match "\r\n")))

;; affiche doxyfile lance doxygen et ouvre firefox sur l'index
(defun gendoc ()
  "Affiche doxyfile lance doxygen et ouvre firefox sur l'index"
  (interactive)
  (shell-command "emacsclient -nw -c ../doc/doxyfile")
  (shell-command "make doc")
  (shell-command "firefox ../doc/html/index.html")
  )

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                            Programation                                  ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;-----------
;; Mode C++
;;----------

;; Lancement des mode pour des extension particuliere
(setq auto-mode-alist
      (cons '("\\.tpp$" . c++-mode) auto-mode-alist))

;;------------
;; Mode C
;;-----------
;;Colorisation de la syntaxe
(global-font-lock-mode t)    
;;Maximum de couleurs        
(setq font-lock-maximum-decoration t)
(windmove-default-keybindings 'meta) 

;;Modification de l'indentation
(setq c-default-style "k&r"
      c-block-comment-prefix ""
      c-basic-offset 4)

;;------------
;; Mode Java
;;-----------

(setq java-default-style "k&r"
      java-block-comment-prefix ""
      java-basic-offset 4)

;;-----------------
;; Mode HTML Delux
;;-----------------

;;chargement du repertoire personnel
(add-to-list 'load-path "/home/pierre/Programation/Lisp/")
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/")

(require 'php-mode)

;; configure css-mode
(autoload 'css-mode "css-mode")
(add-to-list 'auto-mode-alist '("\\.css\\'" . css-mode))
(setq cssm-indent-function #'cssm-c-style-indenter)
(setq cssm-indent-level '2)

(add-hook 'php-mode-user-hook 'turn-on-font-lock)

(require 'mmm-mode)
(setq mmm-global-mode 'maybe)

;; set up an mmm group for fancy html editing
(mmm-add-group
 'fancy-html
 '(
   (html-php-tagged
    :submode php-mode
    :face mmm-code-submode-face
    :front "<[?]php"
    :back "[?]>")
   (html-css-attribute
    :submode css-mode
    :face mmm-declaration-submode-face
    :front "styleREMOVEME=\""
    :back "\"")))

;; What files to invoke the new html-mode for?
(add-to-list 'auto-mode-alist '("\\.inc\\'" . html-mode))
(add-to-list 'auto-mode-alist '("\\.phtml\\'" . html-mode))
(add-to-list 'auto-mode-alist '("\\.php[34]?\\'" . html-mode))
(add-to-list 'auto-mode-alist '("\\.[sj]?html?\\'" . html-mode))
(add-to-list 'auto-mode-alist '("\\.jsp\\'" . html-mode))

;; What features should be turned on in this html-mode?
(add-to-list 'mmm-mode-ext-classes-alist '(html-mode nil html-js))
(add-to-list 'mmm-mode-ext-classes-alist '(html-mode nil embedded-css))
(add-to-list 'mmm-mode-ext-classes-alist '(html-mode nil fancy-html))

;; Modification de la coloration syntaxique
(set-face-background 'mmm-default-submode-face nil)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                Chargement et Parametrage des Modules                     ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;autopair
(require 'autopair)
(autopair-global-mode)
(add-hook 'term-mode-hook
	  #'(lambda () (setq autopair-dont-activate t)))

;;Ido
(ido-mode t)
(ido-everywhere t)
(setq ido-enable-flex-matching t)
(global-set-key
 "\M-x"
 (lambda ()
   (interactive)
   (call-interactively
    (intern
     (ido-completing-read
      "M-x "
      (all-completions "" obarray 'commandp))))))

;;--------------
;; Auto-insert
;;-------------
(require 'auto-insert-tkld)

(setq mail-self-address "Pierre Marijon <pierre@marijon.fr>")
(setq auto-insert-path (cons "~/.emacs.d/insert" auto-insert-path))
(setq auto-insert-automatically t)
(setq auto-insert-alist
      '(
	("main.c$" . "MAIN")            ; main
	("main.cpp$" . "MAIN")          ; main
	("goodies_fct.c" . "GOODIES_C")   ; 
	("goodies_fct.h" . "GOODIES_H")   ; 
	("\\.c$" . "C")			; C
	("\\.h$" . "Cinclude")		; C include
	("[Mm]akefile$" . "Makefile")	; Makefile	 
	("\\.cpp$" . "CPP")             ; Cpp
	("\\.hpp$" . "HPP")             ; Hpp
	)
      )
(setq auto-insert-type-alist
      '(("C" . "insert.c")
	("Cinclude" . "insert.h")
	("Makefile" . "insert.mk")
	("CPP" . "insert.cpp")
	("HPP" . "insert.hpp")
	("MAIN" . "insert.main")
	("GOODIES_C" . "insert.goodies_c") 
	("GOODIES_H" . "insert.goodies_h")
	)
      )

;;------
;; CEDET
;;------
(load-file "/home/pierre/Programation/Lisp/cedet-1.0/common/cedet.el")
(global-ede-mode 1)                      ; Enable the Project management system
(semantic-load-enable-code-helpers)      ; Enable prototype help and smart completion 
(global-srecode-minor-mode 1)            ; Enable template insertion menu

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                             Raccourcie                                   ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(global-set-key [(control c)(c)]'compile)
(global-set-key [(control b)] 'electric-buffer-list)
(global-set-key [(control t)] 'term)
(global-set-key [(control tab)] `other-window)
(global-set-key [(meta up)] 'beginning-of-buffer)
(global-set-key [(meta down)] 'end-of-buffer)
(global-set-key [(meta left)] 'beginning-of-line)
(global-set-key [(meta right)] 'end-of-line)
(global-set-key [(meta c)] 'comment-region)
(global-set-key [(meta u)] 'uncomment-region)
(global-set-key [(control .)] 'semantic-ia-complete-symbol-menu)
(global-set-key [(control c) (meta c)] 'srecode-document-insert-comment)
(global-set-key [(control c) (meta g)] 'srecode-insert-getset)


Voici mon makefile, il est assez généraliste, on peut l'utilise, pour des projet C/C++ utilisant Qt, Vala, je le commente pour que vous puisé le comprendre.

Secret (cliquez pour afficher)
Code : makefile
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#Makefile

DEBUG = yes
QT = no
GTK2 = no

#Definition du shell
SHELL = /bin/bash

#Definition du nom du programme
EXEC = 

#Definition des comipilateur
CC = gcc

#Liste des fichier cible de chaque commande
BIN_FILE = main.o #Pour gcc fichier en .o
UIC_FILE = #Pour uic fichier en .hpp
MOC_FILE = #Pour moc fichier en .cpp
VALA_FILE = #Pour valac fichier en .c
ALL_DEP = $(BIN_FILE) #ajouter moc uic ou valac en fonction des besoin

#Definition des repertoires
SRCDIR = src/ #répertoire des sources 
INCDIR = $(SRCDIR) #répertoire des headers
BINDIR = bin/ #répertoire des .o
UIDIR = $(SRCDIR) #répertoire des fichier ui
VALADIR = $(SRCDIR) #répertoire des fichier vala

.PHONY : clean, mrpropre, imp, doc, moc, uic
.SUFFIXES : .hpp .cpp .c .h .ui 

#Definition des flags pour le compilateur gcc
C_D_FLAGS = -g -pg -O0 
C_O_FLAGS = -O2 -Os -funroll-loops -funsafe-math-optimizations -finline-functions

ifeq($(CC), gcc)
	C_E_FLAGS = -ansi -pedantic -Wchar-subscripts -Wcomment -Wformat=2 -Werror-implicit-function-declaration -Wmain -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef -Wpointer-arith -Wwrite-strings -Wconversion -Wsign-compare -Wmissing-declarations -Wmissing-noreturn -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations -Wpacked -Wredundant-decls -Wlong-long
else
	C_E_FLAGS = -ansi -pedantic -Wchar-subscripts -Wcomment -Wformat=2 -Werror-implicit-function-declaration -Wmain -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef -Wpointer-arith -Wwrite-strings -Wconversion -Wsign-compare -Wmissing-declarations -Wmissing-noreturn -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations -Wpacked -Wredundant-decls -Wlong-long
endif

#Flag Bibliotheque
#Flags GTK2
GTK2_HEA = `pkg-config --cflags gtk+-2.0`
GTK2_LIB = `pkg-config --libs gtk+-2.0`

#Flags Qt
QT_HEA = `pkg-config --cflags QtCore QtGui`
QT_LIB = `pkg-config --libs QtCore QtGui`

#Choix flags lib
ifeq ($(GTK2), yes)
	ifeq ($(QT), yes)
		LIB = $(GTK2_HEA) $(GTK2_LIB) $(QT_HEA) $(QT_LIB)
	else
		LIB = $(GTK2_HEA) $(GTK2_LIB)
	endif
else
	ifeq ($(QT), yes)
		LIB = $(QT_HEA) $(QT_LIB)
	else
		LIB =
	endif
endif

#Choix des flags 
ifeq ($(DEBUG), yes)
	CFLAGS = $(LINK) $(C_D_FLAGS) $(C_E_FLAGS)
else
	CFLAGS = $(LINK) $(C_O_FLAGS) $(C_E_FLAGS)
endif

#Compilation
all : $(ALL_DEP) 
	@$(CC) $(CFLAGS) $(BINDIR)main.o -o $(EXEC)
	@echo -e "$(C_RED)Linkage de "$(EXEC)".$(C_DEF)"

%.o : $(SRCDIR)%.cpp 
	@$(CC) -c $(CFLAGS) $< -o $(BINDIR)$@ 
	@echo -e "$(C_GREEN)Compilation de "$<".$(C_DEF)"

%.cpp : $(SRCDIR)%.hpp
	@moc-qt4  $< -o $(SRCDIR)moc_$@ -f$(shell echo $< | cut -f2 -d/; )
	@echo -e "$(C_BLUE)Génération de "moc_$@" par moc.$(C_DEF)"

%.hpp : $(UIDIR)%.ui
	@uic-qt4 $< -o $(SRCDIR)$@
	@echo -e "$(C_PURPLE)Génération de "$@" par uic.$(C_DEF)"

%.c : $(VALADIR)%.vala
	@valac --pkg gtk+-2.0 $< -o $(SRCDIR)$@ -C -H $(SRCDIR)$(shell echo $< | cut -f2 -d/ | cut -f1 -d. ).h
	@echo -e "$(C_PURPLE)Génération de "$@" et de son header par valac.$(C_DEF)"

uic : $(UIC_FILE)
	@echo -e "$(C_CYAN)Génération des interface terminer.$(C_DEF)"

moc : $(MOC_FILE)
	@echo -e "$(C_CYAN)Génération des fichier moc terminer.$(C_DEF)"

valac : $(VALA_FILE)
	@echo -e "$(C_CYAN)Génération des fichier vala terminer.$(C_DEF)"

#Documentation
doc : src/*
	doxygen ./doc/doxyfile

#Impression
imp : src/*
	a2ps --prologue=color --line-numbers=1 ./src/* -o ./imp/$(EXEC).ps

#Netoyage 
clean :
	rm ./bin/*.o

mrpropre : clean
	rm $(EXEC)


Mon .bashrc, quel que petit truc partique, et des alias sympa, voila.

Secret (cliquez pour afficher)
Code : Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

EDITOR=vim
VISUAL=$EDITOR
export EDITOR VISUAL

bind "set completion-ignore-case on"
bind 'set convert-meta off'

# User specific aliases and functions
alias qmake=/usr/lib64/qt4/bin/qmake
alias rm="rm -i"
alias ll="ls -lh"
alias cp="cp -ip"
alias mv="mv -i"
alias yum="sudo yum"
alias service="sudo service"
alias src2ps="a2ps --prologue=color --line-numbers=1"
alias save.sh="/home/pierre/save.sh"
alias progen.sh="/home/pierre/Programation/bash/progen.sh"

# couleurs
export C_RED='\033[31m'
export C_BLUE='\033[34m'
export C_GRAY='\033[30m'
export C_WHITE='\033[37m'
export C_YELLOW='\033[33m'
export C_PURPLE='\033[35m'
export C_CYAN='\033[36m'
export C_DEF='\033[0m'
export C_GREEN='\033[32m'

#Permet d'avoire le man en couleur
export LESS_TERMCAP_mb=$'\E[01;34m'
export LESS_TERMCAP_md=$'\E[01;34m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;32m'

export PAGER="/usr/bin/less"