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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: غیرفعال کردن حذف خودکار تب در vim  (دفعات بازدید: 760 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین sajadspeed

  • Hero Member
  • *
  • ارسال: 978
  • جنسیت : پسر
غیرفعال کردن حذف خودکار تب در vim
« : 16 شهریور 1402، 10:12 ب‌ظ »
سلام دوستان ببینید مثلا من می‌خوام این آبجکت رو کپی کنم، پس اون رو انتخاب می‌کنم:


حالا میام آخر آبجکت و چون می‌خوام توی خط بعدی کپیش بکنم و کلیدی هم پیدا نکردم که بتونه توی حالت NORMAL خط خالی باز بکنه یا متنی که انتخاب و yank شده رو توی خط بعدی paste بکنه پس ناچارم که از کلید o برای ایجاد خط خالی و استفاده بکنم.

می‌رم آخر آبجکت:


از کلید o استفاده می‌کنم و بعد از ایجاد یک خط خالی به حالت INSERT می‌رم:


الان مشکل اینجاست که وقتی می‌خوام به حالت NORMAL برگردم و کلید p را بزنم، فکر کنم auto-indent خود vim اون تب‌های قبل از متن رو پاک می‌کنه:


الان اینجا دو تا سوال مطرح می‌شه:
۱. آیا در شرایطی که من می‌خوام یک تکه متن خاصی رو کپی و در خط بعدی جای دیگر paste کنم راهکاری بهتر از این هست؟(در شرایطی نمی‌شه از yy و p استفاده کرد)
۲. اگر جواب سوال اول خیر است پس چطور می‌تونم بدون اینکه auto-indent ویم رو غیرفعال بکنم صرفا بگم کاری به تب‌های اضافه من نداشته باشه و پاکشون نکنه؟

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19719
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : غیرفعال کردن حذف خودکار تب در vim
« پاسخ #1 : 16 شهریور 1402، 11:13 ب‌ظ »
احتمالاً نباید ‪y}}p‬ رو بزنید؟
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین sajadspeed

  • Hero Member
  • *
  • ارسال: 978
  • جنسیت : پسر
پاسخ : غیرفعال کردن حذف خودکار تب در vim
« پاسخ #2 : 17 شهریور 1402، 01:32 ق‌ظ »
نه اصلا کلا جواب نمی‌ده، می‌پره آخرین خط اون تابع که مثلا دارم توش کار می‌کنم. توی این فایل خالی تست هم می‌پره به آخر فایل. یعنی { و } اصلا آکولاد و کروشه‌ها رو به عنوان بلاک نمی‌شناسن.
البته این آبجکتی که مثال زدم فقط مثال بود. ممکن متن دیگری باشه و بخوام در خط بعد paste کنم. اگر این جواب هم می‌داد در همه‌ی موارد کار آدم رو راه نمی‌انداخت.

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19719
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : غیرفعال کردن حذف خودکار تب در vim
« پاسخ #3 : 17 شهریور 1402، 02:48 ق‌ظ »
به نظر می‌رسه مشکل شناخت syntax داری. حالا جدای اون، من نفهمیدم چرا o رو می‌زنی؟ خب خود p رو بزن.
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین sajadspeed

  • Hero Member
  • *
  • ارسال: 978
  • جنسیت : پسر
پاسخ : غیرفعال کردن حذف خودکار تب در vim
« پاسخ #4 : 17 شهریور 1402، 11:38 ق‌ظ »
فکر نمی‌کنم ربطی به تشخیص سینتکس داشته باشه چون توی neovim که LSP خود زبان هم نصب هست امتحان کردم. توی پایتون و JS و متن ساده هم تست کردم بازم همین مشکل بود.

این که از کلید o استفاده می‌کنم به این خاطر است. مثلا میام آخر آبجکت:


اگر فقط p را بزنم اینجوری میشه:


در صورتی که من می‌خوام به این شکل دربیاد:


در یک جمله: «Paste کردن متن yank شده در یک خط جدید»

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19719
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : غیرفعال کردن حذف خودکار تب در vim
« پاسخ #5 : 18 شهریور 1402، 03:32 ق‌ظ »
می‌تونی ‪pi<CR>‬ رو بزنی.
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین sajadspeed

  • Hero Member
  • *
  • ارسال: 978
  • جنسیت : پسر
پاسخ : غیرفعال کردن حذف خودکار تب در vim
« پاسخ #6 : 18 شهریور 1402، 06:57 ب‌ظ »
خوب بله اینکه می‌شه، می‌دونید در واقع مشکل بنده کجا ایجاد می‌شه، اینجا که من برای کلید اینتر در حالت نرمال این مپ رو نوشتم:
map <Enter> o<ESC>
بعد الان برای اینکه در خط بعدی paste کنم فقط کافیه یه اینتر و p بزنم. تمومه. ولی مشکل دقیقا همین حذف تب‌هایی است که توی حالت Insert وجود داشته. یعنی وقتی اینتر رو می‌زنم cursor(فکر کنم تو فارسی می‌گیم اشاره‌گر) به این شکل درمیاد:

یعنی اگه این مشکل حذف الکی فاصله‌ها رو درست کنم مشکل کاملا مرتفع می‌شه.

اینکه مستقیما این مورد رو مطرح نکردم برای این بود که شاید بنده به قول معروف ز کل داشتم اشتباه می‌زدم و اگه به این شکل بود متوجه قضیه بشم. شما رو هم اذیت نکنم.