انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => نصب، راه‌اندازی و بروزآوری => نویسنده: learner:~$ در 26 شهریور 1402، 07:50 ب‌ظ

عنوان: حل چند مشکل در ویم
ارسال شده توسط: learner:~$ در 26 شهریور 1402، 07:50 ب‌ظ
درود

دیروز اتفاق بسیار ناگواری برای ویم بنده افتاد که خیلی اعصاب خورد کن بود در کل فایل vimrc  پرید و مجبور شدم که از اول اول تنظیمات رو درست کنم.

از ساعت ۲ تقریبا درگیر ویم شدم و تقریبا تموم شده و نسبت به قبل پیشرفت چشمگیری داشته!!

الان فقط دو تا مشکل دارم!!

۱: یه کلید میان بر نیاز دارم برای جابجایی سریع بین تپ ها در ویم (  برای پلاگین  nerdtree  )

۲ : وقتی میخوام پس زمینه ویم رو انخاب کنم با این ارور مواجه میشم:
Error detected while processing /home/learner/.vimrc:
line   14:
E185: Cannot find color scheme 'molokai'
Press ENTER or type command to continue

ولی من حتی رنگ مورد نظر هم نصب کردم!!!  ](*,)
----
تنظیمات فایل vimrc بنده فعلا به این شکله :

set number
set cursorline
set expandtab
set tabstop=4
set softtabstop=4

   
set shiftwidth=4
 
set autoindent
set textwidth=80
:syntax enable
:set cindent
colorscheme molokai
set encoding=UTF-8

 
call plug#begin()

Plug 'scrooloose/nerdtree'
Plug 'dracula/vim', { 'as': 'dracula' }
Plug 'frazrepo/vim-rainbow'
Plug 'ryanoasis/vim-devicons'
Plug 'vim-airline/vim-airline'
Plug 'tomasr/molokai'
Plug 'fmoralesc/molokayo'
Plug 'vim-airline/vim-airline-themes'
Plug 'nvim-tree/nvim-web-devicons'
Plug 'jiangmiao/auto-pairs'
Plug 'neoclide/coc.nvim', {'branch': 'release'}


call plug#end()

autocmd VimEnter * NERDTree




let g:airline_powerline_fonts = 2


let g:airline#extensions#tabline#enabled = 1
let g:webdevicons_enable_nerdtree = 1

let g:rainbow_active = 1
let g:rainbow_load_separately = [
    \ [ '*' , [['(', ')'], ['\[', '\]'], ['{', '}']] ],
    \ [ '*.tex' , [['(', ')'], ['\[', '\]']] ],
    \ [ '*.cpp' , [['(', ')'], ['\[', '\]'], ['{', '}']] ],
    \ [ '*.{html,htm}' , [['(', ')'], ['\[', '\]'], ['{', '}'], ['<\a[^>]*>', '</[^>]*>']] ],
    \ ]

let g:rainbow_guifgs = ['RoyalBlue3', 'DarkOrange3', 'DarkOrchid3', 'FireBrick']
let g:rainbow_ctermfgs = ['lightblue', 'lightgreen', 'yellow', 'red', 'magenta']

 let g:airline_theme='molokai'



function! AccentDemo()
  let keys = ['a','b','c','d','e','f','g','h']
  for k in keys
    call airline#parts#define_text(k, k)
  endfor
  call airline#parts#define_accent('a', 'red')
  call airline#parts#define_accent('b', 'green')
  call airline#parts#define_accent('c', 'blue')
  call airline#parts#define_accent('d', 'yellow')
  call airline#parts#define_accent('e', 'orange')
  call airline#parts#define_accent('f', 'purple')
  call airline#parts#define_accent('g', 'bold')
  call airline#parts#define_accent('h', 'italic')
  let g:airline_section_a = airline#section#create(keys)
endfunction
autocmd VimEnter * call AccentDemo()

تقریبا ۷۵ درصد راه رفتم!! ( عاشق چالش های ویم هستم خیلی زیباست )

راستی یه چیز دیگه !  من به صورت کامند لاین در ویم میتونم رنگ رو عوض کنم امابه صورت همیشگی  و نوشتن اون در فایل ( که بالا تر توضیح دادم ) نمیتونم عوض کنم!!!
-----
ممنون میشم راهنمایی کنید و اگر تنظیمات بهتری بود بهم بگید!
عنوان: پاسخ : حل چند مشکل در ویم
ارسال شده توسط: sd70 در 26 شهریور 1402، 08:23 ب‌ظ
در فایل تنظیمات شما قبل از اینکه molokai لود بشه، از دستور colorscheme استفاده شده و به همین علت این مشکل ایجاد شده. این دستور رو به بعد از call plug#end()‎ انتقال بدین. در کل بهتره بخش لودشدن پلاگین‌ها در ابتدای فایل تنظیمات قرار داده بشه.

برای جابجایی بین تب‌ها همون میانبر پیشفرض gt و gT جوابگو نیست؟
عنوان: پاسخ : حل چند مشکل در ویم
ارسال شده توسط: learner:~$ در 26 شهریور 1402، 08:36 ب‌ظ
در فایل تنظیمات شما قبل از اینکه molokai لود بشه، از دستور colorscheme استفاده شده و به همین علت این مشکل ایجاد شده. این دستور رو به بعد از call plug#end()‎ انتقال بدین. در کل بهتره بخش لودشدن پلاگین‌ها در ابتدای فایل تنظیمات قرار داده بشه.

برای جابجایی بین تب‌ها همون میانبر پیشفرض gt و gT جوابگو نیست؟
سلام خیلی ممونم مشکل اول من رفع شد برای مشکل دوم نه مثلا چیزی شبیه به  ctrl+A / ctrl+S 
عنوان: پاسخ : حل چند مشکل در ویم
ارسال شده توسط: esmaeelE در 26 شهریور 1402، 08:52 ب‌ظ
روی ویم‌های جدید از نسخهٔ ۸ یک مدیر پلاگین درونی دارین که باید از اون استفاده کنید.
خیلی از مشکلات بعدی به این شکل حل می‌شوند.
به عنوان یک رهنمود کلی سعی کنید از کم‌ترین پلاگین روی ویم استفاده کنید.

به nerdtree هم نیاز ندارید می‌تونید از مدیر پروندهٔ درونی خود ویم netrw با یکسری تنظیم استفاده کنید.

let g:netrw_banner = 0
let g:netrw_browse_split = 4
let g:netrw_altv = 1
let g:netrw_winsize = 25

برای جابه جایی بین تب‌ها از gt , gT استفاده کنید.

https://wiki.ubuntu-ir.org/index.php?title=Vim

عنوان: پاسخ : حل چند مشکل در ویم
ارسال شده توسط: learner:~$ در 26 شهریور 1402، 09:15 ب‌ظ
روی ویم‌های جدید از نسخهٔ ۸ یک مدیر پلاگین درونی دارین که باید از اون استفاده کنید.
خیلی از مشکلات بعدی به این شکل حل می‌شوند.
به عنوان یک رهنمود کلی سعی کنید از کم‌ترین پلاگین روی ویم استفاده کنید.

به nerdtree هم نیاز ندارید می‌تونید از مدیر پروندهٔ درونی خود ویم netrw با یکسری تنظیم استفاده کنید.

let g:netrw_banner = 0
let g:netrw_browse_split = 4
let g:netrw_altv = 1
let g:netrw_winsize = 25

برای جابه جایی بین تب‌ها از gt , gT استفاده کنید.

https://wiki.ubuntu-ir.org/index.php?title=Vim
اینها وقتگیر هستند مدیر پرونده درونی مثل nerdtree  جذاب نیست و حس بدی به من میده

خب فکر کنم انتختب قطعی خودم رو کردم  ctrl+s , ctrl+a  جذاب تر و کاربردی تر هستند چون اون کامند ها وقتگیر هستند !
یه داکیومنت خوب برای اینکه چطور  key binding  ( فارسیش رو اصلا نمیدونم !!! ولی اگه میدونی حتما بگو! ) ست کنیم؛میخوام خودم یاد بگیرم شاید از این چیزی که هسا بهترش کردم!!‌ >:D
آها تا یادم نرفته ! نیاز به یک پلاگین دارم که دسترسی ترمینال رو در ویم راحت تر کن چون وقتی از ترمینال در ویم استفاده میکنید خیلی رو مخ و کند میشه و حتی دردسر ساز!!

ادیت :

آیا استفاده از کامپایلر clang  ایرادی نداره؟؟ چون یک چک کننده کد برای ویم نصب کردم که تقریبا حکم  LSP  ها رو داره البته فکر کنم ما در  ویم  lsp  نداریم (  Coc رو استفاده میکنم ) ولی  در کل نمیدونم متن باز یا آزاد هست
عنوان: پاسخ : حل چند مشکل در ویم
ارسال شده توسط: learner:~$ در 27 شهریور 1402، 06:24 ب‌ظ

set number
:set cursorline
:set expandtab
:set tabstop=4
:set softtabstop=4
:set ignorecase
:set showmatch   
:set shiftwidth=4
:set autoindent
:set textwidth=80
:set splitbelow
:set splitright
:syntax enable
:set cindent
:set encoding=UTF-8
:filetype plugin on
nnoremap <leader>vs :vsplit<CR>
nnoremap <leader>hs :split<CR>
let mapleader = " " " map leader to Space

nnoremap <C-Up> :resize +2<CR>
nnoremap <C-Down> :resize -2<CR>
nnoremap <C-Left> :vertical resize +2<CR>
nnoremap <C-Right> :vertical resize -2<CR>
 
call plug#begin()

Plug 'scrooloose/nerdtree'
Plug 'dracula/vim', { 'as': 'dracula' }
Plug 'frazrepo/vim-rainbow'
Plug 'ryanoasis/vim-devicons'
Plug 'vim-airline/vim-airline'
Plug 'tomasr/molokai'
Plug 'fmoralesc/molokayo'
Plug 'vim-airline/vim-airline-themes'
Plug 'nvim-tree/nvim-web-devicons'
Plug 'jiangmiao/auto-pairs'
Plug 'neoclide/coc.nvim', {'branch': 'release'}


call plug#end()

colorscheme molokayo



autocmd VimEnter * NERDTree
autocmd VimEnter * NERDTree | wincmd p

nnoremap <C-a> :tabprevious<CR>
nnoremap <C-s> :tabnext<CR>

let g:airline_powerline_fonts = 2


let g:airline#extensions#tabline#enabled = 1
let g:webdevicons_enable_nerdtree = 1

let g:rainbow_active = 1
let g:rainbow_load_separately = [
    \ [ '*' , [['(', ')'], ['\[', '\]'], ['{', '}']] ],
    \ [ '*.tex' , [['(', ')'], ['\[', '\]']] ],
    \ [ '*.cpp' , [['(', ')'], ['\[', '\]'], ['{', '}']] ],
    \ [ '*.{html,htm}' , [['(', ')'], ['\[', '\]'], ['{', '}'], ['<\a[^>]*>', '</[^>]*>']] ],
    \ ]

let g:rainbow_guifgs = ['RoyalBlue3', 'DarkOrange3', 'DarkOrchid3', 'FireBrick']
let g:rainbow_ctermfgs = ['lightblue', 'lightgreen', 'yellow', 'red', 'magenta']

let g:airline_theme='badwolf'

let g:airline#extensions#tabline#formatter = 'unique_tail'

خب خب اینم تنظیمات نهایی !
پیشرفت های الا من به سری قبل:
اضافه کردن  lsp .
 بهینه بودن و خوانا بودون و همچنین حجم کمتر کد نسبت به قبل.
حذف کردن برخی از تنظیمات بی خود.
اضافه کردن لاین زیرین.
چیدن میانبر های بهتر و کاربردی تر.
و...
-------------------
چند نکته:

nnoremap <leader>vs :vsplit<CR>
nnoremap <leader>hs :split<CR>
let mapleader = " " " map leader to Space

کلید لیدر به صورت پیشفرض در ویم علامته \ هست ( بک اسلش ) که من اون رو به اسپیس تغیر دادم که بتونم صفحه رو به صورت عمودی و افقی نصف کنم هرچند که گاهی اوقات کار نمیکنه و عنوز درحال تنظیمه پس شما هرچی دوست داشتید اضافه کنید ( شما خط آخر رو بالا تر از اون دو خط بالا بنویسید )

اگر دقت کرده باشید وقتی nerdtree  باز میشه خیلی بزرگه و فضای زیادی اشغال میکنه پس من تصمیم گرفتم  با  ctrl + arrow keys هروقت دلم خواست  سایز پنجره خودم رو عوض کنم و نیاز به حالت موس نباشه:
nnoremap <C-Up> :resize +2<CR>
nnoremap <C-Down> :resize -2<CR>
nnoremap <C-Left> :vertical resize +2<CR>
nnoremap <C-Right> :vertical resize -2<CR>


خب اگر حتی  nerdtree  هم نصب باشه باید وارد کامند مود بشید و به صورت دستی کد رو وارد کنید اما این کد همون اول وقتی فایل مورد نظر  رو باز میکنید نرد تری به صورت پیشفرض باز میشه :

autocmd VimEnter * NERDTree

حالا اگر دقت کنید وقتی نرد تری باز میشه curser  در نیمه چپ هست (‌روی فایل ها و ... ) اما این کد باعث میشه که  curser تویه خود فایل و صفحه اصلی بالا بیاد( بهتر از این نمیتونم توضیح بدم )  :
autocmd VimEnter * NERDTree | wincmd p


خب من شما رو نمیدونم اما کاربرد تب ها برای من بیشتر از بافره  :P ! پس برای همین باید خیلی راحت بین تب ها جابجا بشم! چی بهتر از  ctrl+a , ctrl+s ؟؟؟ :
nnoremap <C-a> :tabprevious<CR>
nnoremap <C-s> :tabnext<CR>



حال کردی؟؟؟ بقیه چیز ها قرتی بازیه و میسپارم به خودتون اما مشکلی داشتید بگید مخوصا تویه  coc  از همه سخترینه ولی یادش گرفتم  :)
نظرتون چیه خوب یا نه؟؟
عنوان: پاسخ : حل چند مشکل در ویم
ارسال شده توسط: دانیال بهزادی در 29 شهریور 1402، 01:16 ب‌ظ
من برای داشتن سیاههٔ پرونده‌ها در ویم از این پیکربندی استفاده کرده‌ام:
https://framagit.org/danialbehzadi/dotfiles/-/blob/49da1007ac5ad1ac1dcfda398e3bf4a76d62a414/vimrc#L123

در ضمن، استفاده از زبونه به جای میانگیر خیلی کار درستی نیست.
عنوان: پاسخ : حل چند مشکل در ویم
ارسال شده توسط: learner:~$ در 29 شهریور 1402، 01:45 ب‌ظ
نقل‌قول

در ضمن، استفاده از زبونه به جای میانگیر خیلی کار درستی نیست.
زبونه و میانه؟؟ منظورتون تب و بافره؟؟
عنوان: پاسخ : حل چند مشکل در ویم
ارسال شده توسط: دانیال بهزادی در 29 شهریور 1402، 03:51 ب‌ظ
زبانه -> Tab
میانگیر -> Buffer
عنوان: پاسخ : حل چند مشکل در ویم
ارسال شده توسط: learner:~$ در 29 شهریور 1402، 06:53 ب‌ظ
زبانه -> Tab
میانگیر -> Buffer
لطفا برای واژه های تخصصی و از این قبیل معادله فارسی استفاده نکنید معنی کلا عوض شده!!حالا هرجور خودتون راحتید ولی به نظرم انگلیسیش بهتره
تا فارسی بشه و جمله مبهمی درست بشه

الان لینک رو چک میکنم درگیر بودم  به هر حال نیاز دارم که چند تا میانبر برای بافر ها درست کنم
عنوان: پاسخ : حل چند مشکل در ویم
ارسال شده توسط: learner:~$ در 30 شهریور 1402، 07:21 ب‌ظ
دوستان امکاش هست شما تنظیمات خودتون و پس زمینه ایی که در ویم استفاده میکنید رو نشون بدید=)
عنوان: پاسخ : حل چند مشکل در ویم
ارسال شده توسط: aFard در 30 شهریور 1402، 09:34 ب‌ظ
موضوع جدید = تاپیک جدید  :o 8)
عنوان: پاسخ : حل چند مشکل در ویم
ارسال شده توسط: learner:~$ در 31 شهریور 1402، 10:34 ق‌ظ
موضوع جدید = تاپیک جدید  :o 8)
لازم نیست هر دقیقه یه تاپیک باز کنیم !! ولی باشه
عنوان: پاسخ : حل چند مشکل در ویم
ارسال شده توسط: دانیال بهزادی در 31 شهریور 1402، 08:23 ب‌ظ
این برای من
عنوان: پاسخ : حل چند مشکل در ویم
ارسال شده توسط: learner:~$ در 01 مهر 1402، 12:59 ب‌ظ
جذابه ولب حس میکنم خیلی رسمیه