Ontwikkel een Neovim-configuratie voor efficiënt Markdown bewerken en previewen
description
Stelt gebruikers in staat om efficiënt Markdown-documenten te schrijven en beheren binnen Neovim door gerichte plugin- en toetscombinatie-aanbevelingen te bieden. Verbetert de productiviteit en vereenvoudigt het proces van document preview en export. Deze prompt vult een gat in bestaande prompts door te focussen op Markdown workflows, een veelvoorkomende behoefte onder ontwikkelaars en schrijvers.
prompt
Help me een Neovim-configuratie te ontwikkelen die mijn Markdown-bewerkingsworkflow verbetert. Ik wil functies zoals live preview, syntax highlighting, tabelbewerking en exportopties. Mijn voorkeurs e ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een suggestie voor een Neovim-configuratie die jouw Markdown-bewerkingsworkflow verbetert met functies zoals live preview, syntax highlighting, tabelbewerking en exportopties voor PDF en HTML.
**1. Plugins**
Gebruik een pluginmanager zoals 'vim-plug' of 'packer.nvim'. Hier een voorbeeld met 'packer.nvim':
```lua
require('packer').startup(function()
use 'wbthomason/packer.nvim' -- Packer zelf
use {
'iamcco/markdown-preview.nvim',
run = 'cd app && npm install',
ft = {'markdown'}
}
use 'preservim/vim-markdown' -- Markdown syntax en functies
use 'dhruvasagar/vim-table-mode' -- Tabelbewerking
use 'lukas-reineke/indent-blankline.nvim' -- Verbeterde syntax highlighting
use 'lyokha/vim-md-math' -- Math support (optioneel)
use {
'glts/vim-magrittr', -- Markdown export functies
ft = {'markdown'}
}
use 'jbyuki/markdown-preview.nvim' -- Alternatief voor live preview
end)
```
**2. Basisinstellingen**
```vim
" Markdown instellingen
autocmd FileType markdown setlocal spell
autocmd FileType markdown setlocal foldmethod=indent
" Tabelmodus activeren
let g:table_mode_map_prefix = '<leader>tm' -- Toegang tot tabelbewerking
let g:table_mode_disable_mappings = 0
```
**3. Live preview**
Gebruik 'markdown-preview.nvim' of 'vim-markdown-preview.nvim':
```lua
-- Voor markdown-preview.nvim
vim.api.nvim_set_keymap('n', '<leader>p', ':MarkdownPreview<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<leader>p', ':MarkdownPreviewClose<CR>', { noremap = true, silent = true })
```
**4. Tabelbewerking**
Gebruik 'vim-table-mode':
```vim
" Tabelmodus inschakelen
autocmd FileType markdown nmap <leader>tm <Plug>(table-mode-toggle)
```
Na activering kun je tabellen bewerken met handige sneltoetsen, zoals Tab en Shift+Tab voor kolomvergroting/verkleining.
**5. Syntax highlighting**
Zorg dat syntax highlighting goed is ingeschakeld:
```vim
syntax enable
let g:markdown_syntax_conceal = 0
```
**6. Export naar PDF en HTML**
Gebruik 'vim-md-math' en externe tools zoals Pandoc:
```lua
-- Command voor export naar HTML
vim.api.nvim_create_user_command('ExportHTML', function()
vim.cmd('!pandoc % -s -o ' .. expand('%:r') .. '.html')
end, {})
-- Command voor export naar PDF
vim.api.nvim_create_user_command('ExportPDF', function()
vim.cmd('!pandoc % -s -o ' .. expand('%:r') .. '.pdf')
end, {})
```
**7. Toetscombinaties**
```vim
" Export
nnoremap <leader>he :ExportHTML<CR>
nnoremap <leader>hp :ExportPDF<CR>
" Live preview
nnoremap <leader>p :MarkdownPreview<CR>
```
**8. Extra tips**
- Zorg dat Pandoc en een LaTeX-distributie (zoals TeX Live) geïnstalleerd zijn voor PDF-export.
- Voor een betere syntax highlighting, gebruik 'nvim-treesitter' met Markdown ondersteuning.
- Overweeg 'vim-pandoc' voor uitgebreide documentverwerking.
---
Met deze setup verbeter je je Markdown workflow: je hebt snelle toegang tot live preview, bewerking van tabellen, syntax highlighting en eenvoudige exportmogelijkheden. Pas de sneltoetsen en plugin-instellingen aan naar jouw voorkeur!
provider: deepseek
model: deepseek-chat
Zeker! Hier is een complete Neovim-configuratie voor Markdown-bewerking die aan al je vereisten voldoet:
## Vereiste Plugins (met `lazy.nvim`)
```lua
-- plugins/markdown.lua
return {
-- Markdown syntax highlighting
{
"preservim/vim-markdown",
ft = "markdown",
dependencies = {
"godlygeek/tabular" -- Vereist voor vim-markdown
}
},
-- Live preview
{
"iamcco/markdown-preview.nvim",
build = function() vim.fn["mkdp#util#install"]() end,
ft = "markdown",
},
-- Tabelbewerking
{
"dhruvasagar/vim-table-mode",
ft = "markdown",
},
-- Export functionaliteit
{
"KillTheMule/nvim-export-markdown",
ft = "markdown",
dependencies = {
"iamcco/markdown-preview.nvim"
}
},
-- Betere Markdown ondersteuning
{
"ellisonleao/glow.nvim",
config = true,
ft = "markdown",
}
}
```
## Basis Markdown Configuratie
```lua
-- config/markdown.lua
vim.g.vim_markdown_folding_disabled = 1
vim.g.vim_markdown_no_default_key_mappings = 1
vim.g.vim_markdown_conceal = 0
vim.g.vim_markdown_conceal_code_blocks = 0
-- Markdown-preview config
vim.g.mkdp_auto_start = 0
vim.g.mkdp_auto_close = 1
vim.g.mkdp_refresh_slow = 0
vim.g.mkdp_command_for_global = 0
vim.g.mkdp_open_to_the_world = 0
vim.g.mkdp_open_ip = ''
vim.g.mkdp_browser = ''
vim.g.mkdp_echo_preview_url = 1
vim.g.mkdp_page_title = '${name}'
vim.g.mkdp_filetypes = {'markdown'}
-- Table-mode config
vim.g.table_mode_corner = '|'
```
## Toetscombinaties voor Productiviteit
```lua
-- keymaps/markdown.lua
local keymap = vim.keymap.set
-- Markdown-specifieke toetscombinaties
keymap('n', '<leader>mp', ':MarkdownPreview<CR>', { desc = "Markdown preview starten" })
keymap('n', '<leader>ms', ':MarkdownPreviewStop<CR>', { desc = "Markdown preview stoppen" })
keymap('n', '<leader>mt', ':TableModeToggle<CR>', { desc = "Tabelmodus toggle" })
-- Export toetscombinaties
keymap('n', '<leader>mep', ':ExportToPDF<CR>', { desc = "Exporteren naar PDF" })
keymap('n', '<leader>meh', ':ExportToHTML<CR>', { desc = "Exporteren naar HTML" })
-- Navigatie in Markdown
keymap('n', ']]', '/^#<CR>', { desc = "Volgende kop", buffer = true })
keymap('n', '[[', '?^#<CR>', { desc = "Vorige kop", buffer = true })
-- Snelkoppelingen voor opmaak
keymap('i', '<C-b>', '****<Left><Left>', { desc = "Vetgedrukt", buffer = true })
keymap('i', '<C-i>', '**<Left>', { desc = "Cursief", buffer = true })
keymap('i', '<C-k>', '``<Left>', { desc = "Inline code", buffer = true })
```
## Geavanceerde Markdown Instellingen
```lua
-- autocmds/markdown.lua
vim.api.nvim_create_autocmd('FileType', {
pattern = 'markdown',
callback = function()
-- Automatische tekstomloop
vim.opt_local.wrap = true
vim.opt_local.linebreak = true
vim.opt_local.textwidth = 80
-- Spellcontrole (optioneel)
vim.opt_local.spell = true
vim.opt_local.spelllang = 'nl,en'
-- Automatische opsommingen
vim.keymap.set('i', '<CR>', function()
local line = vim.api.nvim_get_current_line()
if line:match('^%s*[-*+]%s+') then
return '<CR><C-o>cc'
elseif line:match('^%s*%d+%.%s+') then
return '<CR><C-o>cc'
else
return '<CR>'
end
end, { buffer = true, expr = true })
end
})
```
## Export Configuratie
```lua
-- config/export-markdown.lua
require('export-markdown').setup({
-- PDF export met Pandoc
pdf = {
output_file = "%s.pdf",
args = { "--pdf-engine=pdflatex", "-V", "geometry:margin=2cm" }
},
-- HTML export
html = {
output_file = "%s.html",
args = { "--self-contained", "--css=style.css" }
},
-- Algemene Pandoc opties
general = {
args = { "--standalone" }
}
})
```
## Aanvullende Handige Plugins
```lua
-- Optionele extra plugins
{
-- Automatische voltooiing voor Markdown
"aspeddro/cmp-pandoc.nvim",
ft = "markdown",
},
{
-- Snippets voor Markdown
"chrisgrieser/nvim-puppeteer-snippets",
ft = "markdown",
},
{
-- Betere navigatie door kopteksten
"mzlogin/vim-markdown-toc",
ft = "markdown",
}
```
## Installatie Stappen
1. **Installeer de plugins** door bovenstaande configuratie toe te voegen aan je Neovim setup
2. **Zorg voor dependencies**:
```bash
# Pandoc voor export
sudo apt install pandoc texlive-latex-base texlive-fonts-recommended
# Of op macOS
brew install pandoc basictex
```
3. **Herstart Neovim** en run `:Lazy install`
## Gebruik Workflow
- **Live preview**: `<leader>mp` om preview te starten, `<leader>ms` om te stoppen
- **Tabellen**: `<leader>mt` om tabelmodus in/uit te schakelen, gebruik `||` om tabellen te maken
- **Export**: `<leader>mep` voor PDF, `<leader>meh` voor HTML
- **Navigatie**: `]]` en `[[` om tussen kopteksten te springen
Deze configuratie biedt een complete Markdown-omgeving met alle gewenste functies voor productief schrijven en publiceren!