@florianm__
@matarld
Et comment on fait sans PHPStorm ?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11048193/laVb9RTFbyP0i468yWqo--1--tnbbq.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11048197/laVb9RTFbyP0i468yWqo--1--tnbbq.jpeg.jpeg)
@florianm__
@matarld
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11048203/stable-diffusion-turbo.jpeg.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11048196/XXJCa28YRvSVFfL5JxkG--1--tbcbo.jpeg.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2316182/images/11043380/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2316182/images/11043381/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2316182/images/11043382/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2316182/images/11043388/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2316182/images/11043384/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2316182/images/11043390/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11048204/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11048223/a4ca6e2f-ef5a-48c6-890e-37c421ff14c6.jpeg.jpeg)
1. développer efficacement
2. avoir un outil gratuit
3. pouvoir customiser l'IDE
4. rester dans le terminal
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11049623/pasted-from-clipboard.png)
@florianm__
@matarld
#1 nano
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11049639/Firefly_baby_in_front_of_a_computer_in_which_we_see_the_screen_48400.jpeg__1_.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11049644/st_small_507x507-pad_600x600_f8f8f8.u6.png)
@florianm__
@matarld
simple 👍
ready to go 👍
digital ocean 😎
"classique" 👍
léger 👍
#1 nano
@florianm__
@matarld
(très) pauvre 😢
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11049707/Firefly_baby_in_front_of_a_computer_in_which_we_see_the_screen_with_his_head_in_its_hands_88965.jpeg.jpeg)
pas performant 😔
peu customisable 😭
pas standard (digital ocean 👀)
#1 nano
@florianm__
@matarld
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11049707/Firefly_baby_in_front_of_a_computer_in_which_we_see_the_screen_with_his_head_in_its_hands_88965.jpeg.jpeg)
✅ avoir un outil gratuit
✅ rester dans le terminal
❌ développer efficacement
❌ pouvoir customiser l'IDE
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11049707/Firefly_baby_in_front_of_a_computer_in_which_we_see_the_screen_with_his_head_in_its_hands_88965.jpeg.jpeg)
#2 VI
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11049739/Firefly_teenager_with_a_big_computer_showing_his_muscles_94936.jpeg__1_.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11049737/pasted-from-clipboard.png)
@florianm__
@matarld
configurable 👍
grosse communauté 👍
performant 👍
fonctionnalités 👍
#2 VI
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11049749/Firefly_kid_with_a_big_computer_and_headache_42252.jpeg__1_.jpeg)
@florianm__
@matarld
complexe 😫
apprentissage 😬
✨vimtutor✨
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11049792/GTCAl2xOJ6elOs6E3aKS--1--4vkls.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11049820/pasted-from-clipboard.png)
Panik
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11049807/pasted-from-clipboard.png)
Kalm
@florianm__
@matarld
#2 VI
@florianm__
@matarld
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11049901/Firefly_very_old_guy_with_white_beard_reading_a_book_in_middle_of_a_lot_of_computers__such_as_server.jpeg.jpeg)
#2 VI
#3 VIM
@florianm__
@matarld
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050000/Firefly_a_computer_keyboard_flying_to_heaven_47588.jpg)
macros
manipulation
déplacements
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050029/XZ5V.gif)
#3 VIM
plugins
scripting
@florianm__
@matarld
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050013/Firefly_broken_keyboard_falling_in_the_sky_47635.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050013/Firefly_broken_keyboard_falling_in_the_sky_47635.jpg)
✅ avoir un outil gratuit
✅ rester dans le terminal
🥭🍇 développer efficacement
🥭🍇 pouvoir customiser l'IDE
#3 VIM
@florianm__
@matarld
#4 Neovim
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050059/stable-diffusion-turbo__3_.jpeg.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050066/pasted-from-clipboard.png)
@florianm__
@matarld
#4 Neovim
défauts et mapping
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050408/pngegg__1_.png)
-- init.lua
require("core.options")
require("core.keymaps")
-- lua/core/keymaps.lua
vim.keymap.set("n", "<C-s>", ":w <CR>")
vim.keymap.set("n", "<leader>cs", function ()
local buffer = vim.fn.expand("%")
vim.cmd(string.format("!php-cs-fixer fix %s --quiet", buffer))
vim.cmd('e')
end)
-- lua/core/options.lua
vim.opt.mapleader = " "
vim.opt.ignorecase = true
vim.opt.hlsearch = true
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
@florianm__
@matarld
#4 Neovim
plugins
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050500/stable-diffusion-turbo__6_.jpeg.jpeg)
@florianm__
@matarld
#4 Neovim
plugins
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050500/stable-diffusion-turbo__6_.jpeg.jpeg)
nvim-tree
lualine
barbar
phpactor
telescope
fugitive
gitsigns
argwrap
surround
fzf
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11049849/gigachad.jpeg__1_.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11049864/pasted-from-clipboard.png)
PHPActor
@florianm__
@matarld
#4 Neovim
LSP
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050875/pasted-from-clipboard.png)
(OSS FTW!)
@florianm__
@matarld
#4 Neovim
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050059/stable-diffusion-turbo__3_.jpeg.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050066/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050059/stable-diffusion-turbo__3_.jpeg.jpeg)
✅ avoir un outil gratuit
✅ rester dans le terminal
✅ développer efficacement
✅ pouvoir customiser l'IDE
@florianm__
@matarld
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11053812/rj3lq9dv3AgphZ4UedJJ--1--w0t8q.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050066/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2316182/images/11043380/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11053797/stable-diffusion-turbo__13_.jpeg.jpeg)
#X PDE
@florianm__
@matarld
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2316182/images/10141532/pasted-from-clipboard.png)
tmux
i3
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2316182/images/10141658/pasted-from-clipboard.png)
regolith
Maintenant, c'est à vous ! 💪
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11053801/stable-diffusion-turbo__9_.jpeg.jpeg)
@florianm__
@matarld
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11059849/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11059849/pasted-from-clipboard.png)
vimtutor
ideavim
keymap/options
plugins
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11049774/pasted-from-clipboard.png)
@florianm__
@matarld
nnoremap <silent> <Plug>(ArgWrapToggle) :call argwrap#toggle() <BAR>
\ silent! call repeat#set("\<Plug>(ArgWrapToggle)")<CR>
echo "FOO" == "foo"
function! s:loadGlobalHooks() abort " {{{
if !exists('g:argwrap_global_hooks')
let g:argwrap_global_hooks = []
for hook in globpath(&runtimepath, 'autoload/argwrap/hooks/*.vim', 0, 1)
let l:filename = matchstr(hook, '\vhooks/\zs.+\ze\.vim$')
call add(g:argwrap_global_hooks, printf('argwrap#hooks#%s', l:filename))
endfor
endif
return g:argwrap_global_hooks
endfunction " }}}
#3 VIM
@florianm__
@matarld
#5 Helix
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050929/30ffd41e-51da-4094-aad8-9f82c0eee94e.jpeg.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050935/pasted-from-clipboard.png)
By starting from scratch we were able to learn from our experience with Vim and make some breaking changes. The result is a much smaller codebase and a modern set of defaults. It's easier to get started if you've never used a modal editor before, and there's much less fiddling with config files.
#5 Helix
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11051033/stable-diffusion-turbo__7_.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050935/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11050066/pasted-from-clipboard.png)
@florianm__
@matarld
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11052937/depositphotos_53691571-stock-photo-two-men-angry-giving-thumbs.jpeg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1143980/images/11052914/pasted-from-clipboard.png)
selection → action 👍
curseurs multiples 👍
fonctionnalités 👍
récent 😢
sur peu de systèmes 😔
aucun plugin 😭
#5 Helix
@florianm__
@matarld
[Meetup Afup Lyon 2023] Neovim
By Florian David Merle
[Meetup Afup Lyon 2023] Neovim
- 201