Faits :
A.
Par jugement du 20 juillet 2016, la Chambre patrimoniale cantonale du canton de Vaud a rejeté les conclusions prises par X._ contre l'hoirie de feu Z._, composée de A.Z._ et B.Z._.
X._ a interjeté un appel contre ce jugement, concluant principalement à sa réforme en ce sens que l'hoirie de feu Z._ soit condamnée à lui verser la somme totale de 1'558'450 fr. avec intérêts. Invité à s'acquitter d'une avance de frais d'appel à hauteur de 16'584 fr., l'appelant a requis l'assistance judiciaire, limitée à l'exonération de l'avance de frais; la Juge déléguée de la Cour d'appel civile du canton de Vaud a rejeté cette requête.
X._ a demandé ensuite la réduction en équité de l'avance de frais, subsidiairement l'autorisation de s'acquitter de celle-ci par mensualités. Le 20 décembre 2016, la Juge déléguée l'a autorisé à s'acquitter de l'avance de frais de 16'584 fr. en sept mensualités de 2'000 fr. et une mensualité de 2'584 fr., à payer le dernier jour de chaque mois jusqu'en juillet 2017.
L'appelant ne s'est pas acquitté de la sixième mensualité à l'échéance du 31 mai 2017. Le 6 juin 2017, il a demandé à pouvoir payer le solde encore dû de 6'584 fr. par acomptes mensuels de 1'000 fr. Le 7 juin 2017, la Juge déléguée a refusé de revenir sur les modalités de paiement fixées le 20 décembre 2016.
Par avis du 20 juin 2017 notifié deux jours plus tard, elle a imparti à X._ un délai supplémentaire non prolongeable de cinq jours dès réception pour verser le sixième acompte de 2'000 fr., faute de quoi il ne serait pas entré en matière sur l'appel.
L'appelant a payé sur le compte de la cour cantonale un montant de 2'000 fr. le 10 juillet 2017 et la même somme le lendemain.
Par arrêt du 17 juillet 2017, la Cour d'appel civile, par sa Juge déléguée, a déclaré l'appel irrecevable en application de l'<ref-law>.
Par lettre du 31 juillet 2017 adressée à la Juge déléguée, X._ a fait "opposition totale" à l'arrêt précité. Il rappelait dans ce courrier la situation financière précaire qui l'avait conduit à demander le 6 juin 2017 un nouvel échelonnement pour le règlement de l'avance et prétendait n'avoir jamais reçu de réponse. Par ailleurs, il exposait qu'il avait eu un accident le 20 juin 2017 et était sorti de l'hôpital le 10 juillet 2017, qu'il avait obtenu dans l'intervalle un prêt de 6'000 fr. de la part d'un ami et qu'il avait ainsi pu régler les deux derniers acomptes de 2'000 fr. dès sa sortie de l'hôpital, de même que le solde de 2'584 fr. le 25 juillet 2017. Arguant qu'il avait finalement payé la totalité de l'avance de frais à la dernière échéance fixée au 31 juillet 2017, l'appelant demandait à la Juge déléguée de revoir sa décision, ce qu'elle a refusé dans une communication du 4 août 2017.
B.
X._ a interjeté un recours en matière civile, concluant à l'annulation de l'arrêt du 17 juillet 2017 et au renvoi de la cause à l'autorité cantonale pour qu'il soit entré en matière sur le fond et procédé en conséquence (cause 4A_467/2017). Certificats médicaux à l'appui, le recourant exposait qu'en raison d'une fracture du pied survenue le 20 juin 2017, il avait été empêché sans sa faute de respecter l'ultime délai imparti pour payer le sixième acompte de l'avance de frais, venant à échéance le 27 juin 2017. Il faisait également valoir que son courrier du 31 juillet 2017 constituait une requête en relevé du défaut et que l'autorité cantonale avait violé l'<ref-law> en rejetant cette requête dans sa communication du 4 août 2017.
Par arrêt du 22 mai 2018, le Tribunal fédéral a déclaré irrecevable le recours dirigé contre la décision d'irrecevabilité du 17 juillet 2017, pour non-respect de la règle de l'épuisement des instances cantonales. En effet, les arguments soulevés par le recourant relevaient de l'<ref-law> et devaient être exposés en priorité dans une requête en restitution de délai adressée à l'autorité qui avait rendu la décision d'irrecevabilité (<ref-law>).
En application de l'<ref-law>, le Tribunal fédéral a transmis l'écriture du recourant à la Cour d'appel civile comme objet de sa compétence. Il a jugé utile une telle transmission car, contrairement aux allégations du recourant, la lettre du 31 juillet 2017 ne pouvait être qualifiée de requête en restitution du délai, qui aurait été rejetée dans la communication du 4 août 2017.
Par décision du 4 septembre 2018, la Cour d'appel civile a rejeté la requête de X._ tendant à la restitution du délai supplémentaire pour effectuer le sixième acompte de l'avance de frais de la procédure d'appel introduite contre le jugement de la Chambre patrimoniale cantonale du 20 juillet 2016 dans la cause le divisant d'avec l'hoirie de feu Z._.
C.
X._ interjette un recours en matière civile. Il demande au Tribunal fédéral d'annuler la décision du 4 septembre 2018, d'admettre la requête tendant à la restitution du délai pour effectuer le sixième acompte, de constater que ce paiement a été effectué en date du 10 juillet 2017 et que l'avance de frais requise a été payée dans sa totalité, puis de renvoyer la cause au Tribunal cantonal du canton de Vaud pour qu'il soit entré en matière sur le fond et procédé en conséquence.
Le recourant dépose également une demande d'assistance judiciaire.

Considérant en droit :
1.
La décision attaquée a été rendue en matière civile (<ref-law>) par le tribunal supérieur institué comme autorité cantonale de dernière instance (<ref-law>). Le refus de la restitution de délai est une décision finale (<ref-law>), dès lors que la cour cantonale a déjà clos la procédure dans son arrêt du 17 juillet 2017 et que la requête du défaillant tend à la faire rouvrir (<ref-ruling> consid. 6.3 p. 481 et consid. 7.3 non publié). La valeur litigieuse atteint le seuil de 30'000 fr., ouvrant le recours en matière civile dans les affaires ne relevant ni du droit du travail ni du droit du bail à loyer (<ref-law>). Le recours est exercé par la partie qui a succombé dans sa requête en restitution de délai et, partant, dans ses conclusions tendant à ce que le Tribunal cantonal entre en matière sur son appel (<ref-law>). Déposé en temps utile (<ref-law>) et dans la forme (<ref-law>) prévue par la loi, le recours est recevable.
2.
La cour cantonale a jugé que la requête en restitution du 14 septembre 2017 était tardive. En effet, le recourant lui-même admettait avoir recouvré la capacité d'effectuer l'acte en retard le 10 juillet 2017, à sa sortie de l'hôpital. Or, conformément à l'<ref-law>, la requête en restitution de délai aurait dû être présentée dans les dix jours qui suivaient, ce qui n'avait pas été le cas. Même déposée à temps, la requête aurait dû de toute manière être rejetée. D'une part, le recourant était représenté par un mandataire qui, lui, n'était pas empêché d'agir à temps sans faute ou en raison d'une faute légère. D'autre part, ni l'accident du 20 juin 2017, ni l'incapacité de travail constatée dès le 26 juin 2017 ne constituaient, dans les circonstances de l'espèce, des empêchements justifiant, au sens de l'<ref-law>, le non-paiement de la sixième mensualité de l'avance de frais dans le délai supplémentaire fixé au 27 juin 2017. De surcroît, il résultait du courrier du 31 juillet 2017 du recourant que le véritable motif du règlement tardif de la sixième mensualité résidait dans des difficultés financières, ce qui ne rendait pas le retard excusable sous l'angle de l'<ref-law>.
La cour cantonale a ainsi rejeté la requête en restitution de délai par une double motivation, soit, principalement, le caractère tardif de la requête et, subsidiairement, le fait que le recourant n'a pas rendu vraisemblable l'absence de faute, ni même une faute seulement légère dans le non-respect du délai supplémentaire de paiement de la sixième mensualité.
Selon le recourant, la cour cantonale a appliqué à tort l'<ref-law> instituant un délai de dix jours après la disparition du défaut, alors que l'<ref-law> permettait en l'espèce de présenter la requête en restitution de délai dans les six mois suivant la communication de l'arrêt du 17 juillet 2017. Par ailleurs, le recourant reproche à l'autorité précédente de ne pas avoir retenu comme période d'incapacité du défaillant celle allant de l'accident, le 20 juin 2017, à sa sortie de l'hôpital, le 10 juillet 2018 (recte: 2017); il ajoute que durant cette période, il était également dans l'incapacité d'avertir son mandataire de la situation. On peut admettre que le recourant s'en prend ainsi à chacune des motivations de l'arrêt attaqué, comme la jurisprudence l'exige (entre autres: <ref-ruling> consid. 2.4 p. 368 et les arrêts cités).
3.
3.1. Aux termes de l'<ref-law>, le tribunal peut accorder un délai supplémentaire ou citer les parties à une nouvelle audience lorsque la partie défaillante en fait la requête et rend vraisemblable que le défaut ne lui est pas imputable ou n'est imputable qu'à une faute légère. A côté des conditions matérielles liées à la cause du défaut (absence de faute ou faute légère), la restitution est donc soumise à une condition formelle (le dépôt d'une requête). L'<ref-law> prévoit à cet égard un délai relatif et un délai absolu: la partie défaillante doit présenter une requête dans les dix jours qui suivent celui où la cause du défaut a disparu (al. 2), mais au plus tard six mois après l'entrée en force d'une décision communiquée dans l'intervalle (al. 3) (<ref-ruling> consid. 1 p. 479). Le dies a quo pour le calcul du délai de dix jours est le jour où l'empêchement cesse, pour autant que la partie défaillante connaisse alors son défaut ou ait dû le connaître (arrêt 4A_163/2015 du 12 octobre 2015 consid. 4.1, in SJ 2016 I 114); la partie ne doit pas attendre de recevoir une décision d'irrecevabilité de l'acte accompli tardivement ou une décision rendue par défaut (PATRICIA DIETSCHY-MARTENET, La restitution de délai dans le Code de procédure civile suisse, in RDS 134/2015 p. 162; cf., en lien avec l'<ref-law>, arrêts 5A_801/2013 du 21 janvier 2014 consid. 3.3 et 5A_846/2012 du 4 novembre 2013 consid. 7.3, in SJ 2014 I 109). Pour sa part, le délai de six mois suivant l'entrée en force de la décision n'a de sens que lorsque la cause du défaut est un empêchement ou une ignorance durables: après l'échéance de ce délai, une restitution ne peut plus mettre à néant une décision entrée en force à la suite de l'inobservation d'un délai ou d'une non-comparution (DENIS TAPPY, in Code de procédure civile commenté, 2011, nos 27, 29 et 30 ad <ref-law>).
3.2. En l'espèce, le recourant a effectué le paiement de la sixième mensualité le 10 juillet 2017. L'empêchement invoqué a cessé en tout cas à cette date-là, marquant le dies a quo du délai relatif de dix jours prévu à l'<ref-law>. C'est le lieu de relever que, contrairement à la thèse du recourant, la notification ultérieure de la décision du 17 juillet 2017 n'a pas eu pour effet de soumettre la requête en restitution au délai (absolu) de six mois prévu à l'<ref-law>. Même en tenant compte de la suspension du délai de dix jours pendant les féries (<ref-law>; DAVID HOFMANN/CHRISTIAN LÜSCHER, Le Code de procédure civile, 2e éd. 2015, p. 126; PATRICIA DIETSCHY-MARTENET, op. cit., p. 162), la requête en restitution de délai présentée le 14 septembre 2017 est tardive. Il convient d'ajouter que, comme la cour de céans l'a déjà retenu dans l'arrêt du 22 mai 2018, l'«opposition totale» du 31 juillet 2017 ne pouvait être considérée comme une requête en restitution de délai.
Il s'ensuit que la cour cantonale a jugé à bon droit que le recourant n'avait pas requis à temps la restitution du délai supplémentaire accordé pour le paiement du sixième acompte.
3.3. Le grief adressé à la motivation principale de l'arrêt attaqué étant mal fondé, il n'est pas nécessaire d'examiner, comme les juges précédents l'ont fait à titre subsidiaire, si les conditions matérielles d'une restitution de délai sont remplies en l'espèce.
Sur le vu de ce qui précède, le recours doit être rejeté.
4.
Le recours était voué à l'échec. En conséquence, la demande d'assistance judiciaire pour la procédure devant la cour de céans ne peut être que rejetée (<ref-law>).
Le recourant prendra à sa charge les frais judiciaires (<ref-law>), mais n'aura pas à verser de dépens aux intimés, qui n'ont pas été invités à se déterminer.

Par ces motifs, le Tribunal fédéral prononce:
1.
Le recours est rejeté.
2.
La demande d'assistance judiciaire déposée par le recourant est rejetée.
3.
Les frais judiciaires, arrêtés à 1'000 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux mandataires des parties et à la Cour d'appel civile du Tribunal cantonal du canton de Vaud.
Lausanne, le 12 novembre 2018
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente : Kiss
La Greffière : Godat Zimmermann