vim new file

This commit is contained in:
2026-09-21 19:25:52 +03:00
parent e1f9a3b08b
commit a1a711465d
4 changed files with 165 additions and 4 deletions
+14
View File
@@ -0,0 +1,14 @@
alias l='colorls -G'
alias ll='colorls -Gl'
alias la='colorls -GA'
alias lla='colorls -GAl'
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias grep='grep --color=auto'
alias cp="cp -i"
alias df='df -h'
Executable
+60
View File
@@ -0,0 +1,60 @@
#!/bin/ksh
# Colors
RESET="$(printf '\033[0m')"
BLUE="$(printf '\033[1;34m')"
RED="$(printf '\033[1;31m')"
if [ "$#" -eq 0 ]; then
echo "usage: srm file ..."
exit 1
fi
for file in "$@"; do
if [ ! -e "$file" ]; then
echo "srm: $file: No such file"
continue
fi
if [ -d "$file" ]; then
echo "srm: $file: is a directory"
continue
fi
# --------------------------------------------------------
# Show filename in blue
# --------------------------------------------------------
printf "%s------------------------------------------------------------%s\n" \
"$BLUE" "$RESET"
printf "%sFile: %s%s\n" \
"$BLUE" "$file" "$RESET"
printf "%s------------------------------------------------------------%s\n" \
"$BLUE" "$RESET"
# Show first 10 lines of file
head -n 10 -- "$file"
printf "%s------------------------------------------------------------%s\n" \
"$BLUE" "$RESET"
# --------------------------------------------------------
# Confirmation in red
# --------------------------------------------------------
printf "%sDelete '%s'? [y/N] %s" \
"$RED" "$file" "$RESET"
read answer
case "$answer" in
y|Y|yes|YES)
rm -- "$file"
;;
*)
echo "Not deleted: $file"
;;
esac
done
+1
View File
@@ -0,0 +1 @@
jiolskdjflksdjf
+90 -4
View File
@@ -22,6 +22,7 @@ syntax enable
filetype plugin indent on filetype plugin indent on
set number set number
set relativenumber
set cursorline set cursorline
set ruler set ruler
set showcmd set showcmd
@@ -195,7 +196,7 @@ function! ShowKeymapHelp()
setlocal noswapfile setlocal noswapfile
setlocal nobuflisted setlocal nobuflisted
setlocal nomodified setlocal nomodified
setlocal nowrap setlocal wrap
setlocal nonumber setlocal nonumber
setlocal norelativenumber setlocal norelativenumber
setlocal nocursorline setlocal nocursorline
@@ -204,20 +205,18 @@ function! ShowKeymapHelp()
\ 'VIM KEYMAPS', \ 'VIM KEYMAPS',
\ '===========', \ '===========',
\ '', \ '',
\ 'Leader key: Space',
\ '', \ '',
\ 'FILES AND BROWSING', \ 'FILES AND BROWSING',
\ ' Space e Toggle file browser', \ ' Space e Toggle file browser',
\ ' Space f Find project file', \ ' Space f Find project file',
\ ' Space o Recently opened files', \ ' Space o Recently opened files',
\ ' Space b List open buffers', \ ' Space b List open buffers',
\ ' Space a Create new parent directories and files',
\ '', \ '',
\ 'Inside the file browser:', \ 'Inside the file browser:',
\ ' Enter Open file or directory', \ ' Enter Open file or directory',
\ ' t Open file in new tab', \ ' t Open file in new tab',
\ ' - Parent directory', \ ' - Parent directory',
\ ' % Create file',
\ ' d Create directory',
\ ' R Rename file', \ ' R Rename file',
\ ' D Delete file', \ ' D Delete file',
\ '', \ '',
@@ -284,3 +283,90 @@ augroup keymap_help_startup
\ call ShowKeymapHelp() | \ call ShowKeymapHelp() |
\ endif \ endif
augroup END augroup END
" ---------------------------------------------------------------------------
" Space+a inside filemanager create parent directories and files
" ---------------------------------------------------------------------------
function! NetrwAddPath()
let l:base = b:netrw_curdir
let l:name = input('New path (end with / for directory): ')
if empty(l:name)
return
endif
let l:path = simplify(l:base . '/' . l:name)
" A trailing slash means: create directories only.
if l:name =~# '/$'
try
call mkdir(l:path, 'p')
silent execute 'keepalt edit! ' . fnameescape(l:base)
"silent execute "normal \<C-L>"
echo 'Created directory: ' . l:path
catch
echohl ErrorMsg
echomsg 'Cannot create directory: ' . v:exception
echohl None
endtry
return
endif
" Create all missing parent directories.
let l:parent = fnamemodify(l:path, ':h')
try
call mkdir(l:parent, 'p')
" Create only when the file does not already exist.
if getftype(l:path) ==# ''
call writefile([], l:path, 'b')
elseif isdirectory(l:path)
throw 'Path is a directory: ' . l:path
endif
catch
echohl ErrorMsg
echomsg 'Cannot create file: ' . v:exception
echohl None
return
endtry
" Refresh the Netrw file listing.
"silent execute "normal \<C-L>"
silent execute 'keepalt edit! ' . fnameescape(l:base)
" Find the main editing window.
let l:target_window = winnr('#')
" Find the main editing window.
let l:target_window = winnr('#')
if l:target_window == 0
\ || getbufvar(winbufnr(l:target_window), '&filetype') ==# 'netrw'
let l:target_window = 0
for l:window in range(1, winnr('$'))
if getbufvar(winbufnr(l:window), '&filetype') !=# 'netrw'
let l:target_window = l:window
break
endif
endfor
endif
" Open the new file in the main editing area.
if l:target_window > 0
execute l:target_window . 'wincmd w'
endif
execute 'edit ' . fnameescape(l:path)
endfunction
augroup netrw_custom_mappings
autocmd!
autocmd FileType netrw nnoremap <buffer> <leader>a :call NetrwAddPath()<CR>
augroup END