aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--snippets/bash_server90
-rw-r--r--snippets/dot_example27
-rw-r--r--vim/init/basic.vim5
-rw-r--r--vim/init/keymaps.vim11
-rw-r--r--vim/lua/chadrc.lua2
-rw-r--r--vim/lua/mappings.lua30
-rw-r--r--vim/lua/options.lua2
8 files changed, 148 insertions, 23 deletions
diff --git a/Makefile b/Makefile
index ba4f2b5..6d3a8e0 100644
--- a/Makefile
+++ b/Makefile
@@ -106,3 +106,7 @@ alacritty:
106mpd: 106mpd:
107 ln -sf `pwd`/mpd/ncmpcpp ~/.config/ncmpcpp 107 ln -sf `pwd`/mpd/ncmpcpp ~/.config/ncmpcpp
108 rm -rf ~/.ncmpcpp 108 rm -rf ~/.ncmpcpp
109
110snippets:
111 rm -rf ~/snippets
112 ln -sf `pwd`/snippets ~/snippets
diff --git a/snippets/bash_server b/snippets/bash_server
new file mode 100644
index 0000000..f008d11
--- /dev/null
+++ b/snippets/bash_server
@@ -0,0 +1,90 @@
1#!/bin/bash
2
3## Create the response FIFO
4rm -f response
5mkfifo response
6
7function handle_GET_home() {
8 RESPONSE=$(cat home.html | \
9 sed "s/{{$COOKIE_NAME}}/$COOKIE_VALUE/")
10}
11
12function handle_GET_login() {
13 RESPONSE=$(cat login.html)
14}
15
16function handle_POST_login() {
17 RESPONSE=$(cat post-login.http | \
18 sed "s/{{cookie_name}}/$INPUT_NAME/" | \
19 sed "s/{{cookie_value}}/$INPUT_VALUE/")
20}
21
22function handle_POST_logout() {
23 RESPONSE=$(cat post-logout.http | \
24 sed "s/{{cookie_name}}/$COOKIE_NAME/" | \
25 sed "s/{{cookie_value}}/$COOKIE_VALUE/")
26}
27
28function handle_not_found() {
29 RESPONSE=$(cat 404.html)
30}
31
32function handleRequest() {
33 ## Read request
34 while read line; do
35 echo $line
36 trline=$(echo $line | tr -d '[\r\n]')
37
38 [ -z "$trline" ] && break
39
40 HEADLINE_REGEX='(.*?)\s(.*?)\sHTTP.*?'
41 [[ "$trline" =~ $HEADLINE_REGEX ]] &&
42 REQUEST=$(echo $trline | sed -E "s/$HEADLINE_REGEX/\1 \2/")
43
44 CONTENT_LENGTH_REGEX='Content-Length:\s(.*?)'
45 [[ "$trline" =~ $CONTENT_LENGTH_REGEX ]] &&
46 CONTENT_LENGTH=$(echo $trline | sed -E "s/$CONTENT_LENGTH_REGEX/\1/")
47
48 COOKIE_REGEX='Cookie:\s(.*?)\=(.*?).*?'
49 [[ "$trline" =~ $COOKIE_REGEX ]] &&
50 read COOKIE_NAME COOKIE_VALUE <<< $(echo $trline | sed -E "s/$COOKIE_REGEX/\1 \2/")
51 done
52
53 ## Read body
54 if [ ! -z "$CONTENT_LENGTH" ]; then
55 BODY_REGEX='(.*?)=(.*?)'
56
57 while read -n$CONTENT_LENGTH -t1 line; do
58 echo $line
59 trline=`echo $line | tr -d '[\r\n]'`
60
61 [ -z "$trline" ] && break
62
63 read INPUT_NAME INPUT_VALUE <<< $(echo $trline | sed -E "s/$BODY_REGEX/\1 \2/")
64 done
65 fi
66
67 ## Route to the response handlers
68 case "$REQUEST" in
69 "GET /login") handle_GET_login ;;
70 "GET /") handle_GET_home ;;
71 "POST /login") handle_POST_login ;;
72 "POST /logout") handle_POST_logout ;;
73 *) handle_not_found ;;
74 esac
75
76 echo -e "$RESPONSE" > response
77}
78
79echo 'Listening on 3000...'
80
81## Keep server running forever
82while true; do
83 ## 1. wait for FIFO
84 ## 2. creates a socket and listens to the port 3000
85 ## 3. as soon as a request message arrives to the socket, pipes it to the handleRequest function
86 ## 4. the handleRequest function processes the request message and routes it to the response handler, which writes to the FIFO
87 ## 5. as soon as the FIFO receives a message, it's sent to the socket
88 ## 6. closes the connection (`-N`), closes the socket and repeat the loop
89 cat response | nc -lN 3000 | handleRequest
90done
diff --git a/snippets/dot_example b/snippets/dot_example
new file mode 100644
index 0000000..fa95abc
--- /dev/null
+++ b/snippets/dot_example
@@ -0,0 +1,27 @@
1digraph G {
2
3 subgraph cluster_0 {
4 style=filled;
5 color=lightgrey;
6 node [style=filled,color=white];
7 a0 -> a1 -> a2 -> a3;
8 label = "process #1";
9 }
10
11 subgraph cluster_1 {
12 node [style=filled];
13 b0 -> b1 -> b2 -> b3;
14 label = "process #2";
15 color=blue
16 }
17 start -> a0;
18 start -> b0;
19 a1 -> b3;
20 b2 -> a3;
21 a3 -> a0;
22 a3 -> end;
23 b3 -> end;
24
25 start [shape=Mdiamond];
26 end [shape=Msquare];
27}
diff --git a/vim/init/basic.vim b/vim/init/basic.vim
index c2996d2..5008b2f 100644
--- a/vim/init/basic.vim
+++ b/vim/init/basic.vim
@@ -170,7 +170,10 @@ autocmd BufRead /dev/shm/*.txt call SetPasswordFile()
170function SetPasswordFile() 170function SetPasswordFile()
171 setlocal foldminlines=0 171 setlocal foldminlines=0
172 setlocal foldmethod=manual 172 setlocal foldmethod=manual
173 setlocal foldtext= 173 function s:custom()
174 return "Password"
175 endfunction
176 setlocal foldtext=s:custom()
174 norm! ggzfl 177 norm! ggzfl
175endfunction 178endfunction
176 179
diff --git a/vim/init/keymaps.vim b/vim/init/keymaps.vim
index f789ceb..245905a 100644
--- a/vim/init/keymaps.vim
+++ b/vim/init/keymaps.vim
@@ -129,7 +129,7 @@ vnoremap so :source<CR>
129" MANAGE_VIMRC 129" MANAGE_VIMRC
130"---------------------------------------------------------------------- 130"----------------------------------------------------------------------
131nnoremap <leader>e :edit $MYVIMRC<CR> 131nnoremap <leader>e :edit $MYVIMRC<CR>
132autocmd! bufwritepost $MYVIMRC source $MYVIMRC 132autocmd! BUFWRITEPOST $MYVIMRC source $MYVIMRC
133 133
134 134
135"---------------------------------------------------------------------- 135"----------------------------------------------------------------------
@@ -245,18 +245,19 @@ endfunc
245"---------------------------------------------------------------------- 245"----------------------------------------------------------------------
246 246
247" Open a new buffer 247" Open a new buffer
248nmap <leader><leader>b :enew<CR>
248nmap <leader>O :e /tmp/buffer<CR> 249nmap <leader>O :e /tmp/buffer<CR>
249 250
250" Next buffer 251" Next buffer
251noremap <leader>l :bn<CR> 252noremap <leader>l :exe "buffer ".g:lastbuffer<CR>
253" noremap <Tab> :exe 'buffer '.g:lastbuffer<CR>
252 254
253" set filetype 255" set filetype
254noremap <leader><leader>ft :set filetype= 256noremap <leader><leader>ft :set filetype=
255noremap <leader><leader>fm :set foldmethod= 257noremap <leader><leader>f :set foldmetho =
256 258
257" Let <leader>l toggle between this and the last accessed buffer 259" Let <leader>l toggle between this and the last accessed buffer
258let g:lastbuffer = 1 260let g:lastbuffer = 1
259noremap <Tab> :exe "buffer ".g:lastbuffer<CR>
260au BufLeave * let g:lastbuffer = bufnr() 261au BufLeave * let g:lastbuffer = bufnr()
261 262
262"---------------------------------------------------------------------- 263"----------------------------------------------------------------------
@@ -270,7 +271,7 @@ vnoremap [ <ESC>`<i[<ESC>`>la]<ESC>
270vnoremap { <ESC>`<i{<ESC>`>la}<ESC> 271vnoremap { <ESC>`<i{<ESC>`>la}<ESC>
271vnoremap ` <ESC>`<i`<ESC>`>la`<ESC> 272vnoremap ` <ESC>`<i`<ESC>`>la`<ESC>
272vnoremap <space> <ESC>`<i<space><ESC>`>la<space><ESC> 273vnoremap <space> <ESC>`<i<space><ESC>`>la<space><ESC>
273vnoremap z <ESC>`<i「<ESC>`>la」<ESC> 274vnoremap Q <ESC>`<i「<ESC>`>la」<ESC>
274 275
275 276
276"---------------------------------------------------------------------- 277"----------------------------------------------------------------------
diff --git a/vim/lua/chadrc.lua b/vim/lua/chadrc.lua
index aa0d78c..aa9a78c 100644
--- a/vim/lua/chadrc.lua
+++ b/vim/lua/chadrc.lua
@@ -41,6 +41,8 @@ if M.ui.tabufline.enabled then
41 vim.keymap.set("n", "<A-l>", function() require("nvchad.tabufline").move_buf(1) end) 41 vim.keymap.set("n", "<A-l>", function() require("nvchad.tabufline").move_buf(1) end)
42 vim.keymap.set("n", "<A-H>", function() vim.cmd("tabprevious") end) 42 vim.keymap.set("n", "<A-H>", function() vim.cmd("tabprevious") end)
43 vim.keymap.set("n", "<A-L>", function() vim.cmd("tabnext") end) 43 vim.keymap.set("n", "<A-L>", function() vim.cmd("tabnext") end)
44 vim.keymap.set("n", "<tab>", function() require("nvchad.tabufline").next() end, { desc = "buffer goto next" })
45 vim.keymap.set("n", "<S-tab>", function() require("nvchad.tabufline").prev() end, { desc = "buffer goto prev" })
44end 46end
45 47
46 48
diff --git a/vim/lua/mappings.lua b/vim/lua/mappings.lua
index 45c44ec..9151f17 100644
--- a/vim/lua/mappings.lua
+++ b/vim/lua/mappings.lua
@@ -23,11 +23,6 @@ end, { desc = "format files" })
23-- global lsp mappings 23-- global lsp mappings
24vim.keymap.set("n", "<leader>ds", vim.diagnostic.setloclist, { desc = "lsp diagnostic loclist" }) 24vim.keymap.set("n", "<leader>ds", vim.diagnostic.setloclist, { desc = "lsp diagnostic loclist" })
25 25
26-- tabufline
27vim.keymap.set("n", "<leader>x", function()
28 require("nvchad.tabufline").close_buffer()
29end, { desc = "buffer close" })
30
31-- Comment 26-- Comment
32vim.keymap.set("n", "<leader>/", "gcc", { desc = "comment toggle", remap = true }) 27vim.keymap.set("n", "<leader>/", "gcc", { desc = "comment toggle", remap = true })
33vim.keymap.set("v", "<leader>/", "gc", { desc = "comment toggle", remap = true }) 28vim.keymap.set("v", "<leader>/", "gc", { desc = "comment toggle", remap = true })
@@ -66,8 +61,14 @@ vim.keymap.set('n', '<leader>ss', function()
66 require('telescope.actions').close(prompt_bufnr) 61 require('telescope.actions').close(prompt_bufnr)
67 vim.api.nvim_put(snippet_content, '', false, true) 62 vim.api.nvim_put(snippet_content, '', false, true)
68 end 63 end
64 local edit_selected_snippet = function()
65 local file = require('telescope.actions.state').get_selected_entry()[1]
66 require('telescope.actions').close(prompt_bufnr)
67 vim.cmd(":e " .. cwd .. "/" .. file)
68 end
69 69
70 map('i', '<CR>', insert_selected_snippet) 70 map('i', '<CR>', insert_selected_snippet)
71 map('i', '<C-T>', edit_selected_snippet)
71 map('n', '<CR>', insert_selected_snippet) 72 map('n', '<CR>', insert_selected_snippet)
72 73
73 return true 74 return true
@@ -115,17 +116,12 @@ end, { desc = "Create a new snippet" })
115-- map("t", "<C-x>", "<C-\\><C-N>", { desc = "terminal escape terminal mode" }) 116-- map("t", "<C-x>", "<C-\\><C-N>", { desc = "terminal escape terminal mode" })
116 117
117-- new terminals 118-- new terminals
118vim.keymap.set("n", "<leader><leader>h", function() require("nvchad.term").new { pos = "sp" } end, 119vim.keymap.set("n", "<leader><leader>h", function() require("nvchad.term").new { pos = "sp" } end, { desc = "terminal new horizontal term" })
119 { desc = "terminal new horizontal term" }) 120vim.keymap.set("n", "<leader>v", function() require("nvchad.term").new { pos = "vsp" } end, { desc = "terminal new vertical window" })
120vim.keymap.set("n", "<leader>v", function() require("nvchad.term").new { pos = "vsp" } end,
121 { desc = "terminal new vertical window" })
122-- toggleable 121-- toggleable
123vim.keymap.set({ "n", "t" }, "<A-v>", function() require("nvchad.term").toggle { pos = "vsp", id = "vtoggleTerm" } end, 122vim.keymap.set({ "n", "t" }, "<A-v>", function() require("nvchad.term").toggle { pos = "vsp", id = "vtoggleTerm" } end, { desc = "terminal toggleable vertical term" })
124 { desc = "terminal toggleable vertical term" }) 123vim.keymap.set({ "n", "t" }, "<A-t>", function() require("nvchad.term").toggle { pos = "sp", id = "htoggleTerm" } end, { desc = "terminal new horizontal term" })
125vim.keymap.set({ "n", "t" }, "<A-t>", function() require("nvchad.term").toggle { pos = "sp", id = "htoggleTerm" } end, 124vim.keymap.set({ "n", "t" }, "<A-i>", function() require("nvchad.term").toggle { pos = "float", id = "floatTerm" } end, { desc = "terminal toggle floating term" })
126 { desc = "terminal new horizontal term" })
127vim.keymap.set({ "n", "t" }, "<A-i>", function() require("nvchad.term").toggle { pos = "float", id = "floatTerm" } end,
128 { desc = "terminal toggle floating term" })
129 125
130-- whichkey 126-- whichkey
131vim.keymap.set("n", "<leader>wK", "<cmd>WhichKey <CR>", { desc = "whichkey all keymaps" }) 127vim.keymap.set("n", "<leader>wK", "<cmd>WhichKey <CR>", { desc = "whichkey all keymaps" })
@@ -176,5 +172,5 @@ vim.keymap.set('n', '<C-.>', ':HopChar1<CR>')
176-- [ Aerial ] 172-- [ Aerial ]
177vim.keymap.set("n", "{", "<cmd>AerialPrev<CR>", {}) 173vim.keymap.set("n", "{", "<cmd>AerialPrev<CR>", {})
178vim.keymap.set("n", "}", "<cmd>AerialNext<CR>", {}) 174vim.keymap.set("n", "}", "<cmd>AerialNext<CR>", {})
179vim.keymap.set("n", "<leader><leader>a", "<cmd>Telescope aerial<CR>") 175vim.keymap.set("n", "gN", "<cmd>Telescope aerial<CR>")
180vim.keymap.set("n", "<leader><leader>A", function() require("aerial").toggle({ direction = "left" }) end) 176vim.keymap.set("n", "gn", function() require("aerial").toggle({ direction = "left" }) end)
diff --git a/vim/lua/options.lua b/vim/lua/options.lua
index c16ae64..1c2b881 100644
--- a/vim/lua/options.lua
+++ b/vim/lua/options.lua
@@ -4,6 +4,8 @@ require "nvchad.options"
4 4
5local o = vim.o 5local o = vim.o
6 6
7o.clipboard = ''
8
7-- To enable cursorline! 9-- To enable cursorline!
8o.cursorlineopt ='both' 10o.cursorlineopt ='both'
9 11