Vim-да редакциялау кезінде әртүрлі ақ нүктелерді алып тастаңыз

Өйткені, Vim-мен редакциялау кезінде, мен ақтығы маған қиындық тудыратын әртүрлі жағдайларға түсемін. Мысалы, менің түсініктемеім осындай:

#This program was featured on the Today show, it is an algorithm for promoting world peace in third-world countries
#given the name of that country and the name of a celebrity to endorse its cause

Мен, мысалы, X таңбаларына өтіп, жолдарды кесіп алсам, жаңа жолды ортасында (жаңа сызыққа және авто-шегінуді ұрлағаннан кейін) жаңа сызықтың ортасына қоямын:

#This program was featured on the Today show, it is an algorithm for promoting
world peace in third-world countries
#given the name of that country and the name of a celebrity to endorse its cause

Содан кейін мен жолдың басына # қосып аламын және бұл жақсы және жақсы, бірақ сол сызықтың қатарына қосылғысы келеді. Мұны істеу үшін, жаңа жолды, келесі жолдағы шегіну үшін барлық бос орынды, содан кейін түсініктеме # белгісін жою керек. Бұл өте ұзақ уақытты талап етпейді, бірақ бұл және ұқсас жағдайлардың бәрі бір күннің кодтауына асып түседі.

Жоғарыда келтірілген мысал өте ерекше, бірақ менің сұрағым жоқ. Vim кез-келген ағымдық белгіні келесіге дейін NEWLINES-ды қоса алғанда барлық бос орындарды жоюдың жақсы жолы қандай? Егер Vim-тің бұл әрекеті бар болса, бұл керемет болар еді, бірақ егер жоқ болса, онда кез-келген кілтті салыстыруға болатын жоғарыда көрсетілген әрекеттерді орындау үшін қолданатын Vim функциясы бар ма? Ең болмағанда, бұл іс бойынша алаңдауға тура жол бермейтін Вимнің кейбір идиомасын жетіспеймін бе?

EDIT: Ені бойынша пішімдеу, пайдалы болған кезде және жоғарыдағы жағдайға қолдануға болатын болса, бұл сұрақтың фокус емес. Мен сызықтың соңында тоқтайтын бос орынды жоюдан көбірек алаңдаамын, бірақ орнына келесі жолдың бірінші бос емес емес таңбасына өтеді.

0
dw жұмыс істемейді? Сондай-ақ, бастапқы мәселеңіз үшін gwap немесе gqap қалағаныңызды істемеңіз?
қосылды автор Benoit, көзі
dw желілерді қамтымайды.
қосылды автор A. Wilson, көзі

3 жауаптар

Сіз шынымен бұл түсініктемені ағымдағы 'textwidth' -мен сәйкестендіру үшін қайта пішімдеңіз. Егер түсініктеме параграф болса (яғни, жоғары және төменгі бос орын сызығымен бөлінген), онда gqip ( gq ip - бұл «ішкі параграф» мәтіндік нысаны). Егер бұл жеке оқшауланбаған абзац болса, сіз сол жолдарды визуалды түрде таңдап, одан кейін gq қолданыңыз.

Бұл, сонымен қатар, түсініктеме таңбаларының тиісті түрде өңделуіне көз жеткізу үшін 'formatoptions' параметрін дұрыс орнатуға сүйенеді, бірақ көптеген жағдайларда ftplugin бұл әрекетті жасады.

1
қосылды
@wilsona, d/\ ze \ S . Бұл Vim командалары туралы жақсы нәрсе. Олар кез-келген қозғалыстың үстінен әрекет етеді. /\ ze \ S келесі бос орын белгісінің алдында орналасуды іздейді, сондықтан оны d пәрмені үшін қолданыңыз.
қосылды автор jamessan, көзі
Бұл түсініктеме туралы нақты білу өте жақсы. Жалпы алғанда, бұл кодты параграфсыз деп санауға болмайды?
қосылды автор A. Wilson, көзі

Бұл біраз уақыт өткен соң, бірақ мен жағдайлардың 90% -ында қолданады деген командалар бар екенін байқадым:

J --  join line below to the current one
1
қосылды

Бұл команда мына сияқты жұмыс істейді:

:.s/\W*$\n\W*//g

ол бос орынды жолдың соңына дейін және соңында жаңа жолды жою үшін ауыстырады.

Бұл мысалда:

testting                 aad        $            
asdjkasdjsdaksddjk$

(vim ішіндегі мета таңбаларын көру үшін : set list командасын пайдаланыңыз)

курсорды бірінші жолға қойсаңыз және бірінші пәрменді қолдансаңыз, ол барлық нәрсені $ -дан $ -ға ($ мен жаңа жолды қоса емес) қоса аласыз.

Сондай-ақ, сіз жасайтын әрекеттер туралы ескертпе сіз үшін түсініктемелерді пішімдеу үшін сыртқы бағдарламаны пайдаланудың әлдеқайда тиімді екендігін ескеріңіз. Атап айтқанда, par - мәтінді өңдейтін және қажетті ұзындықтарға орайтын үлкен шағын C бағдарламасы.

Егер сіздің жолыңызда par болса, сіз жасауға тырысатын әрекетті орындау Shift + v және Shift + v

:!par 40pgr

мұндағы 40 - бағандардағы қажетті ені.

Егер сіз хакиш сезінсеңіз, C/perl/C ++/python бағдарламасында өзіңіздің бағдарламаңызды жазыңыз, бірақ сізге ұнаған пікірлерді өңдейді, содан кейін оны жолға қойыңыз және мәтіннің блоктарын өңдеу үшін сыртқы сүзгі пәрменін пайдаланыңыз :! арқылы.

0
қосылды
Жақсы, мен оны күтпеген едім, бірақ содан кейін.
қосылды автор A. Wilson, көзі