Catégorie : linux

vim – astuces

Vim

Séparation par fenêtres

:split Split horizontal
:vsplit Split vertical
:res XX Hauteur fenêtre = XX lignes
:vertical resize XX Largeur fenêtre courante = XX caractères
:30winc > Vertical : 30 caractères à droite
:30winc < Vertical : 30 caractères à gauche
:30winc + Horizontal : 30 caractères à droite
:30winc - Horizontal : 30 caractères à gauche
30[CTRL]W > Décaler de 30 caractères à droite
30[CTRL]W < Décaler de 30 caractères à gauche

Macros

:%s/\%(^ *\)\@<= /\&nbsp;/g Remplacer tous les espaces de début par &nbsp;

Debian 7 : comment changer le pointeur de souris

C’est très simple… une fois que vous avez cherché pendant longtemps :

Première solution

  1. Lancez le programme dconf-editor, et si vous êtes comme moi et que vous ne savez pas trop comment chercher via l’interface graphique, cela fonctionne tout aussi bien en ligne de commande
  2. Une fois le programme lancé, allez dans la branche org » gnome » desktop » interface
  3. Modifiez la valeur cursor-size par une valeur plus grande. Par exemple, j’ai mis 56 et ça me donne enfin un pointeur d’une taille très grossière et pratique – choisissez l’adjectif qui vous convient le mieux, pour moi les deux sont applicables

Seconde solution

  1. Téléchargez le fichier « theme ». Décompressez le.
  2. Créez un dossier ~/.icons
  3. Vérifiez que dans le dossier de votre thème il y a bien un sous dossier cursors
  4. Déplacez le thème au complet dans le dossier ~/.icons
  5. Installez gnome tweak tool comme ceci : sudo apt-get install gnome-tweak-tool
  6. Ensuite appuyez sur la touche Windows et tapez tw pour rechercher le programme Tweak
  7. Lancez le et dans la section « curseur », ouvrez la liste de sélection, et vous verrez vos nouveaux curseurs

C’est cet article qui m’a beaucoup aidé, même s’il manque des informations…
En espérant avoir fait gagner du temps… Bien sûr si vous avez des méthodes plus efficaces, rapides, ou « propres », n’hésitez pas à laisser un commentaire !

WordPress et Permaliens : une solution / hint / astuce

Si jamais les permaliens ne fonctionnent pas :

  • via les fichiers .htaccess ;
  • que vous avez essayé de copier-coller le code qu’il vous a donné dans un fichier vhost ;
  • que vous n’y comprenez rien en règles de réécriture…

Alors essayez de mettre ce qui suit en règle de réécriture dans votre fichier vhost :

# Olivier Pons : règles pour WordPress
# faites "à la main" :
# si index, on stoppe tout :
RewriteRule ^index\.php$ - [QSA,L]
# Tester TOUTES les possibilités
# pour voir si c'est un fichier :
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d  RewriteRule . /index.php [QSA,L]

Dans mon cas leurs règles ne fonctionnaient pas car il ne voyait pas que les fichiers étaient bien là, alors j’ai ajouté la vérification en ajoutant %{DOCUMENT_ROOT}.
Oui je sais ça n’est pas l’idéal, mais comme il est écrit sur l’entrée de Facebook :

Done is better than perfect.

…And I got this thing done. Whatever.

vim : configuration

Je partage mon fichier de configuration de vim, si vous avez des suggestions, n’hésitez pas :

set nocompatible
set nocompatible
filetype plugin on
syntax enable

set ignorecase
set paste
set ruler
set modeline

set showcmd

set nowrap
set textwidth=0
set wrapmargin=0
let g:leave_my_textwidth_alone=1

set expandtab
set autoindent
set smartindent
set softtabstop=4
set tabstop=4

" Dans un fichier php, lorsqu'on tape {<CR> alors
" il fait l'indentation automatique
set shiftwidth=4

set number
colorscheme desert
colorscheme torte
colorscheme zellner

set vb t_vb=

set backup
set backupdir=~/.vim/backup
set directory=~/.vim/tmp
set fileencodings=utf-8,ucs-bom,default,latin1
set scrolloff=5
set scrolloff=15
set undolevels=1000
nmap ;bw :. w! ~/.vimxfer<CR>
nmap ;br :r ~/.vimxfer<CR>
nmap ;ba :. w! >>~/.vimxfer<CR>

" Pour la macro gset, après j'utilise F3 :
" ça sert à transformer les trucs du genre :
" - @return string le nom ajouté ...
" par :
" - @return string Nom ajouté ...
map <F3> ^3w/ [a-zA-Z]<CR><RIGHT>v/\( \\|'\)<CR>xvU
" Macro qui réindente le bloc courant d'une seule tab à droite :
map <F4> Vi{9<lt>Vi{>

" Tell vim to remember certain things when we exit
"  '10 : marks will be remembered for up to 10 previously edited files
"  "100 : will save up to 100 lines for each register
"  :20 : up to 20 lines of command-line history will be remembered
"  % : saves and restores the buffer list
"  n... : where to save the viminfo files
set viminfo='10,\"100,:20,%,n~/.viminfo

" when we reload, tell vim to restore the cursor to the saved position
augroup JumpCursorOnEdit
 au!
 autocmd BufReadPost *
 \ if expand("<afile>:p:h") !=? $TEMP |
 \ if line("'\"") > 1 && line("'\"") <= line("$") |
 \ let JumpCursorOnEdit_foo = line("'\"") |
 \ let b:doopenfold = 1 |
 \ if (foldlevel(JumpCursorOnEdit_foo) > foldlevel(JumpCursorOnEdit_foo - 1)) |
 \ let JumpCursorOnEdit_foo = JumpCursorOnEdit_foo - 1 |
 \ let b:doopenfold = 2 |
 \ endif |
 \ exe JumpCursorOnEdit_foo |
 \ endif |
 \ endif
 " Need to postpone using "zv" until after reading the modelines.
 autocmd BufWinEnter *
 \ if exists("b:doopenfold") |
 \ exe "normal zv" |
 \ if(b:doopenfold > 1) |
 \ exe "+".1 |
 \ endif |
 \ unlet b:doopenfold |
 \ endif
augroup END

set backspace=2

inoremap <silent> <Bar>   <Bar><Esc>:call <SID>align()<CR>a

function! s:align()
  let p = '^\s*|\s.*\s|\s*$'
  if exists(':Tabularize') && getline('.') =~# '^\s*|' && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p)
    let column = strlen(substitute(getline('.')[0:col('.')],'[^|]','','g'))
    let position = strlen(matchstr(getline('.')[0:col('.')],'.*|\s*\zs.*'))
    Tabularize/|/l1
    normal! 0
    call search(repeat('[^|]*|',column).'\s\{-\}'.repeat('.',position),'ce',line('.'))
  endif
endfunction

autocmd BufNewFile  * silent! 0r ~/.vim/templates/%:e.tpl
autocmd BufNewFile  *.php call search('w', '', line("w$"))
autocmd BufNewFile,BufRead *.vhost.conf set filetype=apache
autocmd BufNewFile,BufRead *.json set filetype=yaml

let g:snips_author='Olivier Pons'
let g:snips_author_email='olivier.pons@gmail.com'

" ----------------------------------------
" Smarty syntax highlighter / Rappel il est dans ~/.vim/syntax
" Pris ici http://www.vim.org/scripts/script.php?script_id=1798 :
autocmd BufRead,BufNewFile *.tpl set filetype=smarty

" ----------------------------------------
" Truc de Stackoverflow : si ouverture d'un fichier htm(l) alors
" verifier s'il y a {* *} ou {(alphanum) $xx (alphanum)}
" et si c'est le cas appliquer la syntaxe Smarty (au dessus)
autocmd BufNewFile,BufRead *.htm call s:CheckForSmarty()
autocmd BufNewFile,BufRead *.html call s:CheckForSmarty()

function! s:CheckForSmarty()
  for n in range(1, line('$'))
    "if n > 100
    "  return
    "endif

    let line = getline(n)
    if line =~ '{.*$\k\+}' || line =~ '{\*.*\*}'
      set filetype=smarty
      return
    endif
  endfor
endfunction

" (!) Ultra important sinon *tous* les mappings sont désactivés :
set nopaste

" Code will highlight trailing whitespace in red:
highlight WhitespaceEOL ctermbg=red guibg=red
match WhitespaceEOL /\s\+$/

"highlight OverLength ctermbg=red ctermfg=white guibg=#592929
"match OverLength /\%>80v.\+/
set textwidth=80
set colorcolumn=+1
highlight ColorColumn ctermbg=8
highlight Folded term=standout ctermfg=216 guifg=1 guibg=2 ctermbg=8

" Raccourci : F7 = ouvrir le fichier sous le curseur, F8 = ouvrir en vsplit :
:nnoremap <F8> :vertical wincmd f<CR>
:nnoremap <F7> :wincmd f<CR>

Ubuntu 64 bits et Brother 5380DN installation howto

sudo apt-get install ia32-libs
sudo dpkg -i --force-all hl5380dnlpr-2.0.3-1.i386.deb
sudo dpkg -i --force-all cupswrapperHL5380DN-2.0.4-1.i386.deb

olivier@olivier-desktop ~/Bureau # dpkg  -l  |  grep  Brother
ii  cupswrapperhl5380dn  2.0.4-1    Brother HL5380DN CUPS wrapper driver
ii  hl5380dnlpr          2.0.3-1    Brother HL-5380DN LPR driver

Aller ici:

http://localhost:631/printers

Cliquer sur « Modify Printer » and set following parameters.

- "LPD/LPR Host or Printer" or "AppSocket/HP JetDirect" for Device
- lpd://(Your printer's IP address)/binary_p1 for Device URI
- Brother for Make/Manufacturer Selection
- Your printer's name for Model/Driver Selection

Dans mon cas :

Description : HL5380DN
Emplacement : 192.168.1.138
URI du périphérique : lpd://192.168.1.138/binary_p1

cygwin : problème des espaces avec updatedb : la solution via mount

J’ai eu l’information ici : http://cygwin.com/cygwin-ug-net/using-utils.html#mount

Faire un mount permanent :
Editer le fichier /etc/fstab

Y ajouter le lien vers le répertoire qui a des espaces :
"C:/mon projet/mon sous projet" /monprojetmonsousprojet ntfs binary,posix=0,user,noumount,auto

Lancer un nouveau shell pour que le "mount" soit fait automatiquement

Apache 2.4 : mod_rewrite et RewriteLog et httpd.conf : du changement

RewriteLog n’existe plus

Vous avez la description ici.

RewriteLog n’existe plus ; il faut mettre LogLevel et ensuite tracer le debug dans le errorlog via la commande :
tail -f error_log|fgrep '[rewrite:'

Mes anciens logs ressemblaient à ceci :
RewriteLog "/web/logs/bonnapizza.rewrite.log"
RewriteLogLevel 9

Maintenant ils sont tous ainsi :
LogLevel alert rewrite:trace2