@florianm__
@matarld
Et comment on fait sans PHPStorm ?


@florianm__
@matarld










1. développer efficacement
2. avoir un outil gratuit
3. pouvoir customiser l'IDE
4. rester dans le terminal

@florianm__
@matarld
#1 nano


@florianm__
@matarld
simple 👍
ready to go 👍
digital ocean 😎
"classique" 👍
léger 👍
#1 nano
@florianm__
@matarld
(très) pauvre 😢

pas performant 😔
peu customisable 😭
pas standard (digital ocean 👀)
#1 nano
@florianm__
@matarld

✅ avoir un outil gratuit
✅ rester dans le terminal
❌ développer efficacement
❌ pouvoir customiser l'IDE

#2 VI


@florianm__
@matarld
configurable 👍
grosse communauté 👍
performant 👍
fonctionnalités 👍
#2 VI

@florianm__
@matarld
complexe 😫
apprentissage 😬
✨vimtutor✨


Panik

Kalm
@florianm__
@matarld
#2 VI
@florianm__
@matarld

#2 VI
#3 VIM
@florianm__
@matarld

macros
manipulation
déplacements

#3 VIM
plugins
scripting
@florianm__
@matarld


✅ avoir un outil gratuit
✅ rester dans le terminal
🥭🍇 développer efficacement
🥭🍇 pouvoir customiser l'IDE
#3 VIM
@florianm__
@matarld
#4 Neovim


@florianm__
@matarld
#4 Neovim
défauts et mapping

-- 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

@florianm__
@matarld
#4 Neovim
plugins

nvim-tree
lualine
barbar
phpactor
telescope
fugitive
gitsigns
argwrap
surround
fzf


PHPActor
@florianm__
@matarld
#4 Neovim
LSP

(OSS FTW!)
@florianm__
@matarld
#4 Neovim



✅ avoir un outil gratuit
✅ rester dans le terminal
✅ développer efficacement
✅ pouvoir customiser l'IDE
@florianm__
@matarld




#X PDE
@florianm__
@matarld

tmux
i3

regolith
Maintenant, c'est à vous ! 💪

@florianm__
@matarld


vimtutor
ideavim
keymap/options
plugins

@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


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



@florianm__
@matarld


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
- 198